
(********************************************************************)
(*                                                                  *)
(*  chkstr.sd7    Checks string literals and operations             *)
(*  Copyright (C) 1992 - 1994, 2004, 2007 - 2009 Thomas Mertes      *)
(*                2011 - 2017 Thomas Mertes                         *)
(*                                                                  *)
(*  This program is free software; you can redistribute it and/or   *)
(*  modify it under the terms of the GNU General Public License as  *)
(*  published by the Free Software Foundation; either version 2 of  *)
(*  the License, or (at your option) any later version.             *)
(*                                                                  *)
(*  This program 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 General Public License for more details.                    *)
(*                                                                  *)
(*  You should have received a copy of the GNU General Public       *)
(*  License along with this program; if not, write to the           *)
(*  Free Software Foundation, Inc., 51 Franklin Street,             *)
(*  Fifth Floor, Boston, MA  02110-1301, USA.                       *)
(*                                                                  *)
(********************************************************************)


$ include "seed7_05.s7i";
  include "stdio.s7i";


const func string: striExpr (in string: stri) is
  return stri & str(rand(1, 9))[2 ..];


const func integer: intExpr (in integer: number) is
  return number + length(str(rand(1, 9))[2 ..]);


const func char: charExpr (in char: ch) is
  return chr(ord(ch) + length(str(rand(1, 9))[2 ..]));


const proc: check_string_literal is func
  local
    var boolean: okay is TRUE;
  begin
    if  ord("\""[1]) <> 34 or
        ord("\'"[1]) <> 39 or
        ord("\\"[1]) <> 92 or
        ord("\a"[1]) <>  7 or
        ord("\b"[1]) <>  8 or
        ord("\e"[1]) <> 27 or
        ord("\f"[1]) <> 12 or
        ord("\n"[1]) <> 10 or
        ord("\r"[1]) <> 13 or
        ord("\t"[1]) <>  9 or
        ord("\v"[1]) <> 11 then
      writeln("Basic escape sequences do not work correct.");
      okay := FALSE;
    end if;
    if "\ \"   <> ""   or "\
\"             <> ""   or "\
          \"   <> ""   or
       "a\ \"  <> "a"  or "a\
\"             <> "a"  or "a\
          \"   <> "a"  or
       "\ \b"  <> "b"  or "\
\b"            <> "b"  or "\
          \b"  <> "b"  or
       "a\ \b" <> "ab" or "a\
\b"            <> "ab" or "a\
          \b"  <> "ab" then
      writeln("Escape sequences to skip white space do not work correct.");
      okay := FALSE;
    end if;
    if  ord("\A"[1]) <>  1 or
        ord("\B"[1]) <>  2 or
        ord("\C"[1]) <>  3 or
        ord("\D"[1]) <>  4 or
        ord("\E"[1]) <>  5 or
        ord("\F"[1]) <>  6 or
        ord("\G"[1]) <>  7 or
        ord("\H"[1]) <>  8 or
        ord("\I"[1]) <>  9 or
        ord("\J"[1]) <> 10 or
        ord("\K"[1]) <> 11 or
        ord("\L"[1]) <> 12 or
        ord("\M"[1]) <> 13 or
        ord("\N"[1]) <> 14 or
        ord("\O"[1]) <> 15 or
        ord("\P"[1]) <> 16 or
        ord("\Q"[1]) <> 17 or
        ord("\R"[1]) <> 18 or
        ord("\S"[1]) <> 19 or
        ord("\T"[1]) <> 20 or
        ord("\U"[1]) <> 21 or
        ord("\V"[1]) <> 22 or
        ord("\W"[1]) <> 23 or
        ord("\X"[1]) <> 24 or
        ord("\Y"[1]) <> 25 or
        ord("\Z"[1]) <> 26 then
      writeln("Escape sequences for contol characters do not work correct.");
      okay := FALSE;
    end if;
    if "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\
        \\14;\15;\16;\17;\18;\19;\20;\21;\22;\23;\24;\25;\26;" <>
        "\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z" then
      writeln("Decimal numeric escape sequences do not work correct.");
      okay := FALSE;
    end if;
    if "\2#1;\2#10;\2#11;\2#100;\2#101;\2#110;\2#111;\2#1000;\
        \\2#1001;\2#1010;\2#1011;\2#1100;\2#1101;\2#1110;\
        \\2#1111;\2#10000;\2#10001;\2#10010;\2#10011;\2#10100;\
        \\2#10101;\2#10110;\2#10111;\2#11000;\2#11001;\2#11010;" <>
        "\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z" then
      writeln("Binary numeric escape sequences do not work correct.");
      okay := FALSE;
    end if;
    if "\8#1;\8#2;\8#3;\8#4;\8#5;\8#6;\8#7;\8#10;\8#11;\8#12;\
        \\8#13;\8#14;\8#15;\8#16;\8#17;\8#20;\8#21;\8#22;\8#23;\
        \\8#24;\8#25;\8#26;\8#27;\8#30;\8#31;\8#32;" <>
        "\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z" then
      writeln("Octal numeric escape sequences do not work correct.");
      okay := FALSE;
    end if;
    if "\16#1;\16#2;\16#3;\16#4;\16#5;\16#6;\16#7;\16#8;\16#9;\16#a;\
        \\16#b;\16#c;\16#d;\16#e;\16#f;\16#10;\16#11;\16#12;\16#13;\
        \\16#14;\16#15;\16#16;\16#17;\16#18;\16#19;\16#1a;" <>
        "\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z" then
      writeln("Hexadecimal numeric escape sequences do not work correct.");
      okay := FALSE;
    end if;
    if  ord("\16#7;"[1])       <>        7 or
        ord("\16#8;"[1])       <>        8 or
        ord("\16#f;"[1])       <>       15 or
        ord("\16#10;"[1])      <>       16 or
        ord("\16#1f;"[1])      <>       31 or
        ord("\16#20;"[1])      <>       32 or
        ord("\16#3f;"[1])      <>       63 or
        ord("\16#40;"[1])      <>       64 or
        ord("\16#7f;"[1])      <>      127 or
        ord("\16#80;"[1])      <>      128 or
        ord("\16#ff;"[1])      <>      255 or
        ord("\16#100;"[1])     <>      256 or
        ord("\16#1ff;"[1])     <>      511 or
        ord("\16#200;"[1])     <>      512 or
        ord("\16#3ff;"[1])     <>     1023 or
        ord("\16#400;"[1])     <>     1024 or
        ord("\16#7ff;"[1])     <>     2047 or
        ord("\16#800;"[1])     <>     2048 or
        ord("\16#fff;"[1])     <>     4095 or
        ord("\16#1000;"[1])    <>     4096 or
        ord("\16#1fff;"[1])    <>     8191 or
        ord("\16#2000;"[1])    <>     8192 or
        ord("\16#3fff;"[1])    <>    16383 or
        ord("\16#4000;"[1])    <>    16384 or
        ord("\16#7fff;"[1])    <>    32767 or
        ord("\16#8000;"[1])    <>    32768 or
        ord("\16#ffff;"[1])    <>    65535 or
        ord("\16#10000;"[1])   <>    65536 or
        ord("\16#1ffff;"[1])   <>   131071 or
        ord("\16#20000;"[1])   <>   131072 or
        ord("\16#3ffff;"[1])   <>   262143 or
        ord("\16#40000;"[1])   <>   262144 or
        ord("\16#7ffff;"[1])   <>   524287 or
        ord("\16#80000;"[1])   <>   524288 or
        ord("\16#fffff;"[1])   <>  1048575 or
        ord("\16#100000;"[1])  <>  1048576 or
        ord("\16#1fffff;"[1])  <>  2097151 or
        ord("\16#200000;"[1])  <>  2097152 or
        ord("\16#3fffff;"[1])  <>  4194303 or
        ord("\16#400000;"[1])  <>  4194304 or
        ord("\16#7fffff;"[1])  <>  8388607 or
        ord("\16#800000;"[1])  <>  8388608 or
        ord("\16#ffffff;"[1])  <> 16777215 or
        ord("\16#1000000;"[1]) <> 16777216 or
        ord("\16#1ffffff;"[1]) <> 33554431 or
        ord("\16#2000000;"[1]) <> 33554432 then
      writeln("String escape sequences do not work correct.");
      okay := FALSE;
    end if;

    if literal("\0;\1;\2;\3;\4;\5;\6;\a\b\t\n\v\f\r\14;\15;\16;\
               \\17;\18;\19;\20;\21;\22;\23;\24;\25;\26;\e\28;\29;\30;\31;\
               \ !\"#$%&'()*+,-./0123456789:;<=>?\
               \@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\
               \`abcdefghijklmnopqrstuvwxyz{|}~\127;\
               \\128;\129;\130;\131;\132;\133;\134;\135;\136;\137;\138;\139;\140;\141;\142;\143;\
               \\144;\145;\146;\147;\148;\149;\150;\151;\152;\153;\154;\155;\156;\157;\158;\159;\
               \\160;¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿\
               \ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß\
               \àáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\
               \\256;\257;\258;\259;\260;\300;\350;\400;\450;\500;\550;\600;\650;\700;\800;\900;\
               \\1000;\1100;\1200;\1300;\1400;\1500;\1600;\1700;\1800;\1900;\2000;\
               \\2200;\2400;\2600;\2800;\3000;\3200;\3400;\3600;\3800;\4000;\4333;\
               \\4666;\5000;\5500;\6000;\6500;\7000;\7500;\8000;\8500;\9000;\10000;\
               \\11000;\12000;\13000;\14000;\15000;\16000;\17000;\18000;\19000;\20000;\
               \\22000;\24000;\26000;\28000;\30000;\32000;\34000;\36000;\38000;\40000;\
               \\43333;\46666;\50000;\55000;\60000;\65000;\70000;\80000;\90000;\100000;") <>
        "\"\\0;\\1;\\2;\\3;\\4;\\5;\\6;\\a\\b\\t\\n\\v\\f\\r\\14;\\15;\\16;\
        \\\17;\\18;\\19;\\20;\\21;\\22;\\23;\\24;\\25;\\26;\\e\\28;\\29;\\30;\\31;\
        \ !\\\"#$%&'()*+,-./0123456789:;<=>?\
        \@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_\
        \`abcdefghijklmnopqrstuvwxyz{|}~\\127;\
        \\\128;\\129;\\130;\\131;\\132;\\133;\\134;\\135;\\136;\\137;\\138;\\139;\\140;\\141;\\142;\\143;\
        \\\144;\\145;\\146;\\147;\\148;\\149;\\150;\\151;\\152;\\153;\\154;\\155;\\156;\\157;\\158;\\159;\
        \\\160;¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿\
        \ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß\
        \àáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\
        \\\256;\\257;\\258;\\259;\\260;\\300;\\350;\\400;\\450;\\500;\\550;\\600;\\650;\\700;\\800;\\900;\
        \\\1000;\\1100;\\1200;\\1300;\\1400;\\1500;\\1600;\\1700;\\1800;\\1900;\\2000;\
        \\\2200;\\2400;\\2600;\\2800;\\3000;\\3200;\\3400;\\3600;\\3800;\\4000;\\4333;\
        \\\4666;\\5000;\\5500;\\6000;\\6500;\\7000;\\7500;\\8000;\\8500;\\9000;\\10000;\
        \\\11000;\\12000;\\13000;\\14000;\\15000;\\16000;\\17000;\\18000;\\19000;\\20000;\
        \\\22000;\\24000;\\26000;\\28000;\\30000;\\32000;\\34000;\\36000;\\38000;\\40000;\
        \\\43333;\\46666;\\50000;\\55000;\\60000;\\65000;\\70000;\\80000;\\90000;\\100000;\"" then
      writeln("The literal function does not work correct.");
      okay := FALSE;
    end if;

    if okay then
      writeln("String literals work correct.");
    else
      writeln(" ***** String literals do not work correct.");
      writeln;
    end if;
  end func;


const proc: check_string_comparisons is func
  local
    const array string: arr1 is [] ("a", "ab", "abc", "abcd", "b", "bb", "bbb", "bbbb");
    var array string: arr2 is 0 times "";
    var string: name is "";
    var integer: index is 0;
    var boolean: ok is TRUE;
    var boolean: okay is TRUE;
  begin
    if not ("" = "") or
        not ("a" = "a") or
        not ("b" = "b") or
        not ("aa" = "aa") or
        not ("ab" = "ab") or
        not ("ba" = "ba") or
        not ("aaa" = "aaa") or
        not ("abc" = "abc") or
        not ("cbc" = "cbc") or
        not ("123456789" = "123456789") or
        not ("1234567890" = "1234567890") or
        not ("abcdefghijklmnopqrstuvwxyz" = "abcdefghijklmnopqrstuvwxyz") or
        "" = "a" or
        "" = "123456789" or
        "a" = "" or
        "a" = "b" or
        "a" = "aa" or
        "a" = "ab" or
        "a" = "123456789" or
        "b" = "a" or
        "aa" = "a" or
        "aa" = "ab" or
        "aa" = "ba" or
        "aa" = "aaa" or
        "ab" = "a" or
        "ab" = "aa" or
        "ab" = "ba" or
        "ba" = "aa" or
        "ba" = "ab" or
        "aaa" = "aa" or
        "abc" = "cbc" or
        "cbc" = "abc" or
        "123456789" = "" or
        "123456789" = "a" or
        "123456789" = "1234567890" or
        "123456789" = "abcdefghijklmnopqrstuvwxyz" or
        "1234567890" = "123456789" or
        "abcdefghijklmnopqrstuvwxyz" = "123456789" then
      writeln(" ***** STRING = STRING does not work correct.");
      okay := FALSE;
    end if;

    if not (striExpr("") = "") or
        not (striExpr("a") = "a") or
        not (striExpr("b") = "b") or
        not (striExpr("aa") = "aa") or
        not (striExpr("ab") = "ab") or
        not (striExpr("ba") = "ba") or
        not (striExpr("aaa") = "aaa") or
        not (striExpr("abc") = "abc") or
        not (striExpr("cbc") = "cbc") or
        not (striExpr("123456789") = "123456789") or
        not (striExpr("1234567890") = "1234567890") or
        not (striExpr("abcdefghijklmnopqrstuvwxyz") = "abcdefghijklmnopqrstuvwxyz") or
        striExpr("") = "a" or
        striExpr("") = "123456789" or
        striExpr("a") = "" or
        striExpr("a") = "b" or
        striExpr("a") = "aa" or
        striExpr("a") = "ab" or
        striExpr("a") = "123456789" or
        striExpr("b") = "a" or
        striExpr("aa") = "a" or
        striExpr("aa") = "ab" or
        striExpr("aa") = "ba" or
        striExpr("aa") = "aaa" or
        striExpr("ab") = "a" or
        striExpr("ab") = "aa" or
        striExpr("ab") = "ba" or
        striExpr("ba") = "aa" or
        striExpr("ba") = "ab" or
        striExpr("aaa") = "aa" or
        striExpr("abc") = "cbc" or
        striExpr("cbc") = "abc" or
        striExpr("123456789") = "" or
        striExpr("123456789") = "a" or
        striExpr("123456789") = "1234567890" or
        striExpr("123456789") = "abcdefghijklmnopqrstuvwxyz" or
        striExpr("1234567890") = "123456789" or
        striExpr("abcdefghijklmnopqrstuvwxyz") = "123456789" then
      writeln(" ***** STRING = STRING does not work correct.");
      okay := FALSE;
    end if;

    if not ("" = striExpr("")) or
        not ("a" = striExpr("a")) or
        not ("b" = striExpr("b")) or
        not ("aa" = striExpr("aa")) or
        not ("ab" = striExpr("ab")) or
        not ("ba" = striExpr("ba")) or
        not ("aaa" = striExpr("aaa")) or
        not ("abc" = striExpr("abc")) or
        not ("cbc" = striExpr("cbc")) or
        not ("123456789" = striExpr("123456789")) or
        not ("1234567890" = striExpr("1234567890")) or
        not ("abcdefghijklmnopqrstuvwxyz" = striExpr("abcdefghijklmnopqrstuvwxyz")) or
        "" = striExpr("a") or
        "" = striExpr("123456789") or
        "a" = striExpr("") or
        "a" = striExpr("b") or
        "a" = striExpr("aa") or
        "a" = striExpr("ab") or
        "a" = striExpr("123456789") or
        "b" = striExpr("a") or
        "aa" = striExpr("a") or
        "aa" = striExpr("ab") or
        "aa" = striExpr("ba") or
        "aa" = striExpr("aaa") or
        "ab" = striExpr("a") or
        "ab" = striExpr("aa") or
        "ab" = striExpr("ba") or
        "ba" = striExpr("aa") or
        "ba" = striExpr("ab") or
        "aaa" = striExpr("aa") or
        "abc" = striExpr("cbc") or
        "cbc" = striExpr("abc") or
        "123456789" = striExpr("") or
        "123456789" = striExpr("a") or
        "123456789" = striExpr("1234567890") or
        "123456789" = striExpr("abcdefghijklmnopqrstuvwxyz") or
        "1234567890" = striExpr("123456789") or
        "abcdefghijklmnopqrstuvwxyz" = striExpr("123456789") then
      writeln(" ***** STRING = STRING does not work correct.");
      okay := FALSE;
    end if;

    if not (striExpr("") = striExpr("")) or
        not (striExpr("a") = striExpr("a")) or
        not (striExpr("b") = striExpr("b")) or
        not (striExpr("aa") = striExpr("aa")) or
        not (striExpr("ab") = striExpr("ab")) or
        not (striExpr("ba") = striExpr("ba")) or
        not (striExpr("aaa") = striExpr("aaa")) or
        not (striExpr("abc") = striExpr("abc")) or
        not (striExpr("cbc") = striExpr("cbc")) or
        not (striExpr("123456789") = striExpr("123456789")) or
        not (striExpr("1234567890") = striExpr("1234567890")) or
        not (striExpr("abcdefghijklmnopqrstuvwxyz") = striExpr("abcdefghijklmnopqrstuvwxyz")) or
        striExpr("") = striExpr("a") or
        striExpr("") = striExpr("123456789") or
        striExpr("a") = striExpr("") or
        striExpr("a") = striExpr("b") or
        striExpr("a") = striExpr("aa") or
        striExpr("a") = striExpr("ab") or
        striExpr("a") = striExpr("123456789") or
        striExpr("b") = striExpr("a") or
        striExpr("aa") = striExpr("a") or
        striExpr("aa") = striExpr("ab") or
        striExpr("aa") = striExpr("ba") or
        striExpr("aa") = striExpr("aaa") or
        striExpr("ab") = striExpr("a") or
        striExpr("ab") = striExpr("aa") or
        striExpr("ab") = striExpr("ba") or
        striExpr("ba") = striExpr("aa") or
        striExpr("ba") = striExpr("ab") or
        striExpr("aaa") = striExpr("aa") or
        striExpr("abc") = striExpr("cbc") or
        striExpr("cbc") = striExpr("abc") or
        striExpr("123456789") = striExpr("") or
        striExpr("123456789") = striExpr("a") or
        striExpr("123456789") = striExpr("1234567890") or
        striExpr("123456789") = striExpr("abcdefghijklmnopqrstuvwxyz") or
        striExpr("1234567890") = striExpr("123456789") or
        striExpr("abcdefghijklmnopqrstuvwxyz") = striExpr("123456789") then
      writeln(" ***** STRING = STRING does not work correct.");
      okay := FALSE;
    end if;

    if "" <> "" or
        "a" <> "a" or
        "b" <> "b" or
        "aa" <> "aa" or
        "ab" <> "ab" or
        "ba" <> "ba" or
        "aaa" <> "aaa" or
        "abc" <> "abc" or
        "cbc" <> "cbc" or
        "123456789" <> "123456789" or
        "1234567890" <> "1234567890" or
        "abcdefghijklmnopqrstuvwxyz" <> "abcdefghijklmnopqrstuvwxyz" or
        not ("" <> "a") or
        not ("" <> "123456789") or
        not ("a" <> "") or
        not ("a" <> "b") or
        not ("a" <> "aa") or
        not ("a" <> "ab") or
        not ("a" <> "123456789") or
        not ("b" <> "a") or
        not ("aa" <> "a") or
        not ("aa" <> "ab") or
        not ("aa" <> "ba") or
        not ("aa" <> "aaa") or
        not ("ab" <> "a") or
        not ("ab" <> "aa") or
        not ("ab" <> "ba") or
        not ("ba" <> "aa") or
        not ("ba" <> "ab") or
        not ("aaa" <> "aa") or
        not ("abc" <> "cbc") or
        not ("cbc" <> "abc") or
        not ("123456789" <> "") or
        not ("123456789" <> "a") or
        not ("123456789" <> "1234567890") or
        not ("123456789" <> "abcdefghijklmnopqrstuvwxyz") or
        not ("1234567890" <> "123456789") or
        not ("abcdefghijklmnopqrstuvwxyz" <> "123456789") then
      writeln(" ***** STRING <> STRING does not work correct.");
      okay := FALSE;
    end if;

    if striExpr("") <> "" or
        striExpr("a") <> "a" or
        striExpr("b") <> "b" or
        striExpr("aa") <> "aa" or
        striExpr("ab") <> "ab" or
        striExpr("ba") <> "ba" or
        striExpr("aaa") <> "aaa" or
        striExpr("abc") <> "abc" or
        striExpr("cbc") <> "cbc" or
        striExpr("123456789") <> "123456789" or
        striExpr("1234567890") <> "1234567890" or
        striExpr("abcdefghijklmnopqrstuvwxyz") <> "abcdefghijklmnopqrstuvwxyz" or
        not (striExpr("") <> "a") or
        not (striExpr("") <> "123456789") or
        not (striExpr("a") <> "") or
        not (striExpr("a") <> "b") or
        not (striExpr("a") <> "aa") or
        not (striExpr("a") <> "ab") or
        not (striExpr("a") <> "123456789") or
        not (striExpr("b") <> "a") or
        not (striExpr("aa") <> "a") or
        not (striExpr("aa") <> "ab") or
        not (striExpr("aa") <> "ba") or
        not (striExpr("aa") <> "aaa") or
        not (striExpr("ab") <> "a") or
        not (striExpr("ab") <> "aa") or
        not (striExpr("ab") <> "ba") or
        not (striExpr("ba") <> "aa") or
        not (striExpr("ba") <> "ab") or
        not (striExpr("aaa") <> "aa") or
        not (striExpr("abc") <> "cbc") or
        not (striExpr("cbc") <> "abc") or
        not (striExpr("123456789") <> "") or
        not (striExpr("123456789") <> "a") or
        not (striExpr("123456789") <> "1234567890") or
        not (striExpr("123456789") <> "abcdefghijklmnopqrstuvwxyz") or
        not (striExpr("1234567890") <> "123456789") or
        not (striExpr("abcdefghijklmnopqrstuvwxyz") <> "123456789") then
      writeln(" ***** STRING <> STRING does not work correct.");
      okay := FALSE;
    end if;

    if "" <> striExpr("") or
        "a" <> striExpr("a") or
        "b" <> striExpr("b") or
        "aa" <> striExpr("aa") or
        "ab" <> striExpr("ab") or
        "ba" <> striExpr("ba") or
        "aaa" <> striExpr("aaa") or
        "abc" <> striExpr("abc") or
        "cbc" <> striExpr("cbc") or
        "123456789" <> striExpr("123456789") or
        "1234567890" <> striExpr("1234567890") or
        "abcdefghijklmnopqrstuvwxyz" <> striExpr("abcdefghijklmnopqrstuvwxyz") or
        not ("" <> striExpr("a")) or
        not ("" <> striExpr("123456789")) or
        not ("a" <> striExpr("")) or
        not ("a" <> striExpr("b")) or
        not ("a" <> striExpr("aa")) or
        not ("a" <> striExpr("ab")) or
        not ("a" <> striExpr("123456789")) or
        not ("b" <> striExpr("a")) or
        not ("aa" <> striExpr("a")) or
        not ("aa" <> striExpr("ab")) or
        not ("aa" <> striExpr("ba")) or
        not ("aa" <> striExpr("aaa")) or
        not ("ab" <> striExpr("a")) or
        not ("ab" <> striExpr("aa")) or
        not ("ab" <> striExpr("ba")) or
        not ("ba" <> striExpr("aa")) or
        not ("ba" <> striExpr("ab")) or
        not ("aaa" <> striExpr("aa")) or
        not ("abc" <> striExpr("cbc")) or
        not ("cbc" <> striExpr("abc")) or
        not ("123456789" <> striExpr("")) or
        not ("123456789" <> striExpr("a")) or
        not ("123456789" <> striExpr("1234567890")) or
        not ("123456789" <> striExpr("abcdefghijklmnopqrstuvwxyz")) or
        not ("1234567890" <> striExpr("123456789")) or
        not ("abcdefghijklmnopqrstuvwxyz" <> striExpr("123456789")) then
      writeln(" ***** STRING <> STRING does not work correct.");
      okay := FALSE;
    end if;

    if striExpr("") <> striExpr("") or
        striExpr("a") <> striExpr("a") or
        striExpr("b") <> striExpr("b") or
        striExpr("aa") <> striExpr("aa") or
        striExpr("ab") <> striExpr("ab") or
        striExpr("ba") <> striExpr("ba") or
        striExpr("aaa") <> striExpr("aaa") or
        striExpr("abc") <> striExpr("abc") or
        striExpr("cbc") <> striExpr("cbc") or
        striExpr("123456789") <> striExpr("123456789") or
        striExpr("1234567890") <> striExpr("1234567890") or
        striExpr("abcdefghijklmnopqrstuvwxyz") <> striExpr("abcdefghijklmnopqrstuvwxyz") or
        not (striExpr("") <> striExpr("a")) or
        not (striExpr("") <> striExpr("123456789")) or
        not (striExpr("a") <> striExpr("")) or
        not (striExpr("a") <> striExpr("b")) or
        not (striExpr("a") <> striExpr("aa")) or
        not (striExpr("a") <> striExpr("ab")) or
        not (striExpr("a") <> striExpr("123456789")) or
        not (striExpr("b") <> striExpr("a")) or
        not (striExpr("aa") <> striExpr("a")) or
        not (striExpr("aa") <> striExpr("ab")) or
        not (striExpr("aa") <> striExpr("ba")) or
        not (striExpr("aa") <> striExpr("aaa")) or
        not (striExpr("ab") <> striExpr("a")) or
        not (striExpr("ab") <> striExpr("aa")) or
        not (striExpr("ab") <> striExpr("ba")) or
        not (striExpr("ba") <> striExpr("aa")) or
        not (striExpr("ba") <> striExpr("ab")) or
        not (striExpr("aaa") <> striExpr("aa")) or
        not (striExpr("abc") <> striExpr("cbc")) or
        not (striExpr("cbc") <> striExpr("abc")) or
        not (striExpr("123456789") <> striExpr("")) or
        not (striExpr("123456789") <> striExpr("a")) or
        not (striExpr("123456789") <> striExpr("1234567890")) or
        not (striExpr("123456789") <> striExpr("abcdefghijklmnopqrstuvwxyz")) or
        not (striExpr("1234567890") <> striExpr("123456789")) or
        not (striExpr("abcdefghijklmnopqrstuvwxyz") <> striExpr("123456789")) then
      writeln(" ***** STRING <> STRING does not work correct.");
      okay := FALSE;
    end if;

    if  not (
        not (""      > ""      ) and
        not (""      > "0"     ) and
        not (""      > "00"    ) and
        not (""      > "01"    ) and
        not (""      > "02"    ) and
        not (""      > "1"     ) and
        not (""      > "10"    ) and
        not (""      > "11"    ) and
        not (""      > "12"    ) and
        not (""      > "2"     ) and
        not (""      > "20"    ) and
        not (""      > "21"    ) and
        not (""      > "22"    ) and
        not (""      > "22222" ) and
             "1"     > ""        and
             "1"     > "0"       and
             "1"     > "00"      and
             "1"     > "01"      and
             "1"     > "02"      and
             "1"     > "0234"    and
        not ("1"     > "1"     ) and
        not ("1"     > "10"    ) and
        not ("1"     > "11"    ) and
        not ("1"     > "110"   ) and
        not ("1"     > "111"   ) and
        not ("1"     > "112"   ) and
        not ("1"     > "12"    ) and
        not ("1"     > "2"     ) and
        not ("1"     > "20"    ) and
        not ("1"     > "21"    ) and
        not ("1"     > "22"    ) and
             "123"   > ""        and
             "123"   > "0"       and
             "123"   > "1"       and
             "123"   > "11"      and
             "123"   > "12"      and
             "123"   > "122"     and
             "123"   > "1222"    and
             "123"   > "1223"    and
             "123"   > "1224"    and
        not ("123"   > "123"   ) and
        not ("123"   > "124"   ) and
        not ("123"   > "13"    ) and
        not ("123"   > "2"     ) and
        not ("123"   > "21"    ) and
        not ("123"   > "22"    ) and
        not ("123"   > "222"   ) and
        not ("123"   > "2222"  ) and
        not (""      > ""      ) and
             "0"     > ""        and
             "00"    > ""        and
             "01"    > ""        and
             "02"    > ""        and
             "1"     > ""        and
             "10"    > ""        and
             "11"    > ""        and
             "12"    > ""        and
             "2"     > ""        and
             "20"    > ""        and
             "21"    > ""        and
             "22"    > ""        and
             "22222" > ""        and
        not (""      > "1"     ) and
        not ("0"     > "1"     ) and
        not ("00"    > "1"     ) and
        not ("01"    > "1"     ) and
        not ("02"    > "1"     ) and
        not ("0234"  > "1"     ) and
        not ("1"     > "1"     ) and
             "10"    > "1"       and
             "11"    > "1"       and
             "110"   > "1"       and
             "111"   > "1"       and
             "112"   > "1"       and
             "12"    > "1"       and
             "2"     > "1"       and
             "20"    > "1"       and
             "21"    > "1"       and
             "22"    > "1"       and
        not (""      > "123"   ) and
        not ("0"     > "123"   ) and
        not ("1"     > "123"   ) and
        not ("11"    > "123"   ) and
        not ("12"    > "123"   ) and
        not ("122"   > "123"   ) and
        not ("1222"  > "123"   ) and
        not ("1223"  > "123"   ) and
        not ("1224"  > "123"   ) and
        not ("123"   > "123"   ) and
             "124"   > "123"     and
             "13"    > "123"     and
             "2"     > "123"     and
             "21"    > "123"     and
             "22"    > "123"     and
             "222"   > "123"     and
             "2222"  > "123"
             ) then
      writeln(" ***** STRING > STRING does not work correct.");
      okay := FALSE;
    end if;

    if  not (
        not (striExpr("")      > ""      ) and
        not (striExpr("")      > "0"     ) and
        not (striExpr("")      > "00"    ) and
        not (striExpr("")      > "01"    ) and
        not (striExpr("")      > "02"    ) and
        not (striExpr("")      > "1"     ) and
        not (striExpr("")      > "10"    ) and
        not (striExpr("")      > "11"    ) and
        not (striExpr("")      > "12"    ) and
        not (striExpr("")      > "2"     ) and
        not (striExpr("")      > "20"    ) and
        not (striExpr("")      > "21"    ) and
        not (striExpr("")      > "22"    ) and
        not (striExpr("")      > "22222" ) and
             striExpr("1")     > ""        and
             striExpr("1")     > "0"       and
             striExpr("1")     > "00"      and
             striExpr("1")     > "01"      and
             striExpr("1")     > "02"      and
             striExpr("1")     > "0234"    and
        not (striExpr("1")     > "1"     ) and
        not (striExpr("1")     > "10"    ) and
        not (striExpr("1")     > "11"    ) and
        not (striExpr("1")     > "110"   ) and
        not (striExpr("1")     > "111"   ) and
        not (striExpr("1")     > "112"   ) and
        not (striExpr("1")     > "12"    ) and
        not (striExpr("1")     > "2"     ) and
        not (striExpr("1")     > "20"    ) and
        not (striExpr("1")     > "21"    ) and
        not (striExpr("1")     > "22"    ) and
             striExpr("123")   > ""        and
             striExpr("123")   > "0"       and
             striExpr("123")   > "1"       and
             striExpr("123")   > "11"      and
             striExpr("123")   > "12"      and
             striExpr("123")   > "122"     and
             striExpr("123")   > "1222"    and
             striExpr("123")   > "1223"    and
             striExpr("123")   > "1224"    and
        not (striExpr("123")   > "123"   ) and
        not (striExpr("123")   > "124"   ) and
        not (striExpr("123")   > "13"    ) and
        not (striExpr("123")   > "2"     ) and
        not (striExpr("123")   > "21"    ) and
        not (striExpr("123")   > "22"    ) and
        not (striExpr("123")   > "222"   ) and
        not (striExpr("123")   > "2222"  ) and
        not (striExpr("")      > ""      ) and
             striExpr("0")     > ""        and
             striExpr("00")    > ""        and
             striExpr("01")    > ""        and
             striExpr("02")    > ""        and
             striExpr("1")     > ""        and
             striExpr("10")    > ""        and
             striExpr("11")    > ""        and
             striExpr("12")    > ""        and
             striExpr("2")     > ""        and
             striExpr("20")    > ""        and
             striExpr("21")    > ""        and
             striExpr("22")    > ""        and
             striExpr("22222") > ""        and
        not (striExpr("")      > "1"     ) and
        not (striExpr("0")     > "1"     ) and
        not (striExpr("00")    > "1"     ) and
        not (striExpr("01")    > "1"     ) and
        not (striExpr("02")    > "1"     ) and
        not (striExpr("0234")  > "1"     ) and
        not (striExpr("1")     > "1"     ) and
             striExpr("10")    > "1"       and
             striExpr("11")    > "1"       and
             striExpr("110")   > "1"       and
             striExpr("111")   > "1"       and
             striExpr("112")   > "1"       and
             striExpr("12")    > "1"       and
             striExpr("2")     > "1"       and
             striExpr("20")    > "1"       and
             striExpr("21")    > "1"       and
             striExpr("22")    > "1"       and
        not (striExpr("")      > "123"   ) and
        not (striExpr("0")     > "123"   ) and
        not (striExpr("1")     > "123"   ) and
        not (striExpr("11")    > "123"   ) and
        not (striExpr("12")    > "123"   ) and
        not (striExpr("122")   > "123"   ) and
        not (striExpr("1222")  > "123"   ) and
        not (striExpr("1223")  > "123"   ) and
        not (striExpr("1224")  > "123"   ) and
        not (striExpr("123")   > "123"   ) and
             striExpr("124")   > "123"     and
             striExpr("13")    > "123"     and
             striExpr("2")     > "123"     and
             striExpr("21")    > "123"     and
             striExpr("22")    > "123"     and
             striExpr("222")   > "123"     and
             striExpr("2222")  > "123"
             ) then
      writeln(" ***** STRING > STRING does not work correct.");
      okay := FALSE;
    end if;

    if  not (
        not (""      > striExpr("")      ) and
        not (""      > striExpr("0")     ) and
        not (""      > striExpr("00")    ) and
        not (""      > striExpr("01")    ) and
        not (""      > striExpr("02")    ) and
        not (""      > striExpr("1")     ) and
        not (""      > striExpr("10")    ) and
        not (""      > striExpr("11")    ) and
        not (""      > striExpr("12")    ) and
        not (""      > striExpr("2")     ) and
        not (""      > striExpr("20")    ) and
        not (""      > striExpr("21")    ) and
        not (""      > striExpr("22")    ) and
        not (""      > striExpr("22222") ) and
             "1"     > striExpr("")        and
             "1"     > striExpr("0")       and
             "1"     > striExpr("00")      and
             "1"     > striExpr("01")      and
             "1"     > striExpr("02")      and
             "1"     > striExpr("0234")    and
        not ("1"     > striExpr("1")     ) and
        not ("1"     > striExpr("10")    ) and
        not ("1"     > striExpr("11")    ) and
        not ("1"     > striExpr("110")   ) and
        not ("1"     > striExpr("111")   ) and
        not ("1"     > striExpr("112")   ) and
        not ("1"     > striExpr("12")    ) and
        not ("1"     > striExpr("2")     ) and
        not ("1"     > striExpr("20")    ) and
        not ("1"     > striExpr("21")    ) and
        not ("1"     > striExpr("22")    ) and
             "123"   > striExpr("")        and
             "123"   > striExpr("0")       and
             "123"   > striExpr("1")       and
             "123"   > striExpr("11")      and
             "123"   > striExpr("12")      and
             "123"   > striExpr("122")     and
             "123"   > striExpr("1222")    and
             "123"   > striExpr("1223")    and
             "123"   > striExpr("1224")    and
        not ("123"   > striExpr("123")   ) and
        not ("123"   > striExpr("124")   ) and
        not ("123"   > striExpr("13")    ) and
        not ("123"   > striExpr("2")     ) and
        not ("123"   > striExpr("21")    ) and
        not ("123"   > striExpr("22")    ) and
        not ("123"   > striExpr("222")   ) and
        not ("123"   > striExpr("2222")  ) and
        not (""      > striExpr("")      ) and
             "0"     > striExpr("")        and
             "00"    > striExpr("")        and
             "01"    > striExpr("")        and
             "02"    > striExpr("")        and
             "1"     > striExpr("")        and
             "10"    > striExpr("")        and
             "11"    > striExpr("")        and
             "12"    > striExpr("")        and
             "2"     > striExpr("")        and
             "20"    > striExpr("")        and
             "21"    > striExpr("")        and
             "22"    > striExpr("")        and
             "22222" > striExpr("")        and
        not (""      > striExpr("1")     ) and
        not ("0"     > striExpr("1")     ) and
        not ("00"    > striExpr("1")     ) and
        not ("01"    > striExpr("1")     ) and
        not ("02"    > striExpr("1")     ) and
        not ("0234"  > striExpr("1")     ) and
        not ("1"     > striExpr("1")     ) and
             "10"    > striExpr("1")       and
             "11"    > striExpr("1")       and
             "110"   > striExpr("1")       and
             "111"   > striExpr("1")       and
             "112"   > striExpr("1")       and
             "12"    > striExpr("1")       and
             "2"     > striExpr("1")       and
             "20"    > striExpr("1")       and
             "21"    > striExpr("1")       and
             "22"    > striExpr("1")       and
        not (""      > striExpr("123")   ) and
        not ("0"     > striExpr("123")   ) and
        not ("1"     > striExpr("123")   ) and
        not ("11"    > striExpr("123")   ) and
        not ("12"    > striExpr("123")   ) and
        not ("122"   > striExpr("123")   ) and
        not ("1222"  > striExpr("123")   ) and
        not ("1223"  > striExpr("123")   ) and
        not ("1224"  > striExpr("123")   ) and
        not ("123"   > striExpr("123")   ) and
             "124"   > striExpr("123")     and
             "13"    > striExpr("123")     and
             "2"     > striExpr("123")     and
             "21"    > striExpr("123")     and
             "22"    > striExpr("123")     and
             "222"   > striExpr("123")    and
             "2222"  > striExpr("123")
             ) then
      writeln(" ***** STRING > STRING does not work correct.");
      okay := FALSE;
    end if;

    if  not (
        not (striExpr("")      > striExpr("")      ) and
        not (striExpr("")      > striExpr("0")     ) and
        not (striExpr("")      > striExpr("00")    ) and
        not (striExpr("")      > striExpr("01")    ) and
        not (striExpr("")      > striExpr("02")    ) and
        not (striExpr("")      > striExpr("1")     ) and
        not (striExpr("")      > striExpr("10")    ) and
        not (striExpr("")      > striExpr("11")    ) and
        not (striExpr("")      > striExpr("12")    ) and
        not (striExpr("")      > striExpr("2")     ) and
        not (striExpr("")      > striExpr("20")    ) and
        not (striExpr("")      > striExpr("21")    ) and
        not (striExpr("")      > striExpr("22")    ) and
        not (striExpr("")      > striExpr("22222") ) and
             striExpr("1")     > striExpr("")        and
             striExpr("1")     > striExpr("0")       and
             striExpr("1")     > striExpr("00")      and
             striExpr("1")     > striExpr("01")      and
             striExpr("1")     > striExpr("02")      and
             striExpr("1")     > striExpr("0234")    and
        not (striExpr("1")     > striExpr("1")     ) and
        not (striExpr("1")     > striExpr("10")    ) and
        not (striExpr("1")     > striExpr("11")    ) and
        not (striExpr("1")     > striExpr("110")   ) and
        not (striExpr("1")     > striExpr("111")   ) and
        not (striExpr("1")     > striExpr("112")   ) and
        not (striExpr("1")     > striExpr("12")    ) and
        not (striExpr("1")     > striExpr("2")     ) and
        not (striExpr("1")     > striExpr("20")    ) and
        not (striExpr("1")     > striExpr("21")    ) and
        not (striExpr("1")     > striExpr("22")    ) and
             striExpr("123")   > striExpr("")        and
             striExpr("123")   > striExpr("0")       and
             striExpr("123")   > striExpr("1")       and
             striExpr("123")   > striExpr("11")      and
             striExpr("123")   > striExpr("12")      and
             striExpr("123")   > striExpr("122")     and
             striExpr("123")   > striExpr("1222")    and
             striExpr("123")   > striExpr("1223")    and
             striExpr("123")   > striExpr("1224")    and
        not (striExpr("123")   > striExpr("123")   ) and
        not (striExpr("123")   > striExpr("124")   ) and
        not (striExpr("123")   > striExpr("13")    ) and
        not (striExpr("123")   > striExpr("2")     ) and
        not (striExpr("123")   > striExpr("21")    ) and
        not (striExpr("123")   > striExpr("22")    ) and
        not (striExpr("123")   > striExpr("222")   ) and
        not (striExpr("123")   > striExpr("2222")  ) and
        not (striExpr("")      > striExpr("")      ) and
             striExpr("0")     > striExpr("")        and
             striExpr("00")    > striExpr("")        and
             striExpr("01")    > striExpr("")        and
             striExpr("02")    > striExpr("")        and
             striExpr("1")     > striExpr("")        and
             striExpr("10")    > striExpr("")        and
             striExpr("11")    > striExpr("")        and
             striExpr("12")    > striExpr("")        and
             striExpr("2")     > striExpr("")        and
             striExpr("20")    > striExpr("")        and
             striExpr("21")    > striExpr("")        and
             striExpr("22")    > striExpr("")        and
             striExpr("22222") > striExpr("")        and
        not (striExpr("")      > striExpr("1")     ) and
        not (striExpr("0")     > striExpr("1")     ) and
        not (striExpr("00")    > striExpr("1")     ) and
        not (striExpr("01")    > striExpr("1")     ) and
        not (striExpr("02")    > striExpr("1")     ) and
        not (striExpr("0234")  > striExpr("1")     ) and
        not (striExpr("1")     > striExpr("1")     ) and
             striExpr("10")    > striExpr("1")       and
             striExpr("11")    > striExpr("1")       and
             striExpr("110")   > striExpr("1")       and
             striExpr("111")   > striExpr("1")       and
             striExpr("112")   > striExpr("1")       and
             striExpr("12")    > striExpr("1")       and
             striExpr("2")     > striExpr("1")       and
             striExpr("20")    > striExpr("1")       and
             striExpr("21")    > striExpr("1")       and
             striExpr("22")    > striExpr("1")       and
        not (striExpr("")      > striExpr("123")   ) and
        not (striExpr("0")     > striExpr("123")   ) and
        not (striExpr("1")     > striExpr("123")   ) and
        not (striExpr("11")    > striExpr("123")   ) and
        not (striExpr("12")    > striExpr("123")   ) and
        not (striExpr("122")   > striExpr("123")   ) and
        not (striExpr("1222")  > striExpr("123")   ) and
        not (striExpr("1223")  > striExpr("123")   ) and
        not (striExpr("1224")  > striExpr("123")   ) and
        not (striExpr("123")   > striExpr("123")   ) and
             striExpr("124")   > striExpr("123")     and
             striExpr("13")    > striExpr("123")     and
             striExpr("2")     > striExpr("123")     and
             striExpr("21")    > striExpr("123")     and
             striExpr("22")    > striExpr("123")     and
             striExpr("222")   > striExpr("123")     and
             striExpr("2222")  > striExpr("123")
             ) then
      writeln(" ***** STRING > STRING does not work correct.");
      okay := FALSE;
    end if;

    if  not (
             ""      >= ""        and
        not (""      >= "0"     ) and
        not (""      >= "00"    ) and
        not (""      >= "01"    ) and
        not (""      >= "02"    ) and
        not (""      >= "1"     ) and
        not (""      >= "10"    ) and
        not (""      >= "11"    ) and
        not (""      >= "12"    ) and
        not (""      >= "2"     ) and
        not (""      >= "20"    ) and
        not (""      >= "21"    ) and
        not (""      >= "22"    ) and
        not (""      >= "22222" ) and
             "1"     >= ""        and
             "1"     >= "0"       and
             "1"     >= "00"      and
             "1"     >= "01"      and
             "1"     >= "02"      and
             "1"     >= "0234"    and
             "1"     >= "1"       and
        not ("1"     >= "10"    ) and
        not ("1"     >= "11"    ) and
        not ("1"     >= "110"   ) and
        not ("1"     >= "111"   ) and
        not ("1"     >= "112"   ) and
        not ("1"     >= "12"    ) and
        not ("1"     >= "2"     ) and
        not ("1"     >= "20"    ) and
        not ("1"     >= "21"    ) and
        not ("1"     >= "22"    ) and
             "123"   >= ""        and
             "123"   >= "0"       and
             "123"   >= "1"       and
             "123"   >= "11"      and
             "123"   >= "12"      and
             "123"   >= "122"     and
             "123"   >= "1222"    and
             "123"   >= "1223"    and
             "123"   >= "1224"    and
             "123"   >= "123"     and
        not ("123"   >= "124"   ) and
        not ("123"   >= "13"    ) and
        not ("123"   >= "2"     ) and
        not ("123"   >= "21"    ) and
        not ("123"   >= "22"    ) and
        not ("123"   >= "222"   ) and
        not ("123"   >= "2222"  ) and
             ""      >= ""        and
             "0"     >= ""        and
             "00"    >= ""        and
             "01"    >= ""        and
             "02"    >= ""        and
             "1"     >= ""        and
             "10"    >= ""        and
             "11"    >= ""        and
             "12"    >= ""        and
             "2"     >= ""        and
             "20"    >= ""        and
             "21"    >= ""        and
             "22"    >= ""        and
             "22222" >= ""        and
        not (""      >= "1"     ) and
        not ("0"     >= "1"     ) and
        not ("00"    >= "1"     ) and
        not ("01"    >= "1"     ) and
        not ("02"    >= "1"     ) and
        not ("0234"  >= "1"     ) and
             "1"     >= "1"       and
             "10"    >= "1"       and
             "11"    >= "1"       and
             "110"   >= "1"       and
             "111"   >= "1"       and
             "112"   >= "1"       and
             "12"    >= "1"       and
             "2"     >= "1"       and
             "20"    >= "1"       and
             "21"    >= "1"       and
             "22"    >= "1"       and
        not (""      >= "123"   ) and
        not ("0"     >= "123"   ) and
        not ("1"     >= "123"   ) and
        not ("11"    >= "123"   ) and
        not ("12"    >= "123"   ) and
        not ("122"   >= "123"   ) and
        not ("1222"  >= "123"   ) and
        not ("1223"  >= "123"   ) and
        not ("1224"  >= "123"   ) and
             "123"   >= "123"     and
             "124"   >= "123"     and
             "13"    >= "123"     and
             "2"     >= "123"     and
             "21"    >= "123"     and
             "22"    >= "123"     and
             "222"   >= "123"     and
             "2222"  >= "123"
             ) then
      writeln(" ***** STRING >= STRING does not work correct.");
      okay := FALSE;
    end if;

    if  not (
             striExpr("")      >= ""        and
        not (striExpr("")      >= "0"     ) and
        not (striExpr("")      >= "00"    ) and
        not (striExpr("")      >= "01"    ) and
        not (striExpr("")      >= "02"    ) and
        not (striExpr("")      >= "1"     ) and
        not (striExpr("")      >= "10"    ) and
        not (striExpr("")      >= "11"    ) and
        not (striExpr("")      >= "12"    ) and
        not (striExpr("")      >= "2"     ) and
        not (striExpr("")      >= "20"    ) and
        not (striExpr("")      >= "21"    ) and
        not (striExpr("")      >= "22"    ) and
        not (striExpr("")      >= "22222" ) and
             striExpr("1")     >= ""        and
             striExpr("1")     >= "0"       and
             striExpr("1")     >= "00"      and
             striExpr("1")     >= "01"      and
             striExpr("1")     >= "02"      and
             striExpr("1")     >= "0234"    and
             striExpr("1")     >= "1"       and
        not (striExpr("1")     >= "10"    ) and
        not (striExpr("1")     >= "11"    ) and
        not (striExpr("1")     >= "110"   ) and
        not (striExpr("1")     >= "111"   ) and
        not (striExpr("1")     >= "112"   ) and
        not (striExpr("1")     >= "12"    ) and
        not (striExpr("1")     >= "2"     ) and
        not (striExpr("1")     >= "20"    ) and
        not (striExpr("1")     >= "21"    ) and
        not (striExpr("1")     >= "22"    ) and
             striExpr("123")   >= ""        and
             striExpr("123")   >= "0"       and
             striExpr("123")   >= "1"       and
             striExpr("123")   >= "11"      and
             striExpr("123")   >= "12"      and
             striExpr("123")   >= "122"     and
             striExpr("123")   >= "1222"    and
             striExpr("123")   >= "1223"    and
             striExpr("123")   >= "1224"    and
             striExpr("123")   >= "123"     and
        not (striExpr("123")   >= "124"   ) and
        not (striExpr("123")   >= "13"    ) and
        not (striExpr("123")   >= "2"     ) and
        not (striExpr("123")   >= "21"    ) and
        not (striExpr("123")   >= "22"    ) and
        not (striExpr("123")   >= "222"   ) and
        not (striExpr("123")   >= "2222"  ) and
             striExpr("")      >= ""        and
             striExpr("0")     >= ""        and
             striExpr("00")    >= ""        and
             striExpr("01")    >= ""        and
             striExpr("02")    >= ""        and
             striExpr("1")     >= ""        and
             striExpr("10")    >= ""        and
             striExpr("11")    >= ""        and
             striExpr("12")    >= ""        and
             striExpr("2")     >= ""        and
             striExpr("20")    >= ""        and
             striExpr("21")    >= ""        and
             striExpr("22")    >= ""        and
             striExpr("22222") >= ""        and
        not (striExpr("")      >= "1"     ) and
        not (striExpr("0")     >= "1"     ) and
        not (striExpr("00")    >= "1"     ) and
        not (striExpr("01")    >= "1"     ) and
        not (striExpr("02")    >= "1"     ) and
        not (striExpr("0234")  >= "1"     ) and
             striExpr("1")     >= "1"       and
             striExpr("10")    >= "1"       and
             striExpr("11")    >= "1"       and
             striExpr("110")   >= "1"       and
             striExpr("111")   >= "1"       and
             striExpr("112")   >= "1"       and
             striExpr("12")    >= "1"       and
             striExpr("2")     >= "1"       and
             striExpr("20")    >= "1"       and
             striExpr("21")    >= "1"       and
             striExpr("22")    >= "1"       and
        not (striExpr("")      >= "123"   ) and
        not (striExpr("0")     >= "123"   ) and
        not (striExpr("1")     >= "123"   ) and
        not (striExpr("11")    >= "123"   ) and
        not (striExpr("12")    >= "123"   ) and
        not (striExpr("122")   >= "123"   ) and
        not (striExpr("1222")  >= "123"   ) and
        not (striExpr("1223")  >= "123"   ) and
        not (striExpr("1224")  >= "123"   ) and
             striExpr("123")   >= "123"     and
             striExpr("124")   >= "123"     and
             striExpr("13")    >= "123"     and
             striExpr("2")     >= "123"     and
             striExpr("21")    >= "123"     and
             striExpr("22")    >= "123"     and
             striExpr("222")   >= "123"     and
             striExpr("2222")  >= "123"
             ) then
      writeln(" ***** STRING >= STRING does not work correct.");
      okay := FALSE;
    end if;

    if  not (
             ""      >= striExpr("")        and
        not (""      >= striExpr("0")     ) and
        not (""      >= striExpr("00")    ) and
        not (""      >= striExpr("01")    ) and
        not (""      >= striExpr("02")    ) and
        not (""      >= striExpr("1")     ) and
        not (""      >= striExpr("10")    ) and
        not (""      >= striExpr("11")    ) and
        not (""      >= striExpr("12")    ) and
        not (""      >= striExpr("2")     ) and
        not (""      >= striExpr("20")    ) and
        not (""      >= striExpr("21")    ) and
        not (""      >= striExpr("22")    ) and
        not (""      >= striExpr("22222") ) and
             "1"     >= striExpr("")        and
             "1"     >= striExpr("0")       and
             "1"     >= striExpr("00")      and
             "1"     >= striExpr("01")      and
             "1"     >= striExpr("02")      and
             "1"     >= striExpr("0234")    and
             "1"     >= striExpr("1")       and
        not ("1"     >= striExpr("10")    ) and
        not ("1"     >= striExpr("11")    ) and
        not ("1"     >= striExpr("110")   ) and
        not ("1"     >= striExpr("111")   ) and
        not ("1"     >= striExpr("112")   ) and
        not ("1"     >= striExpr("12")    ) and
        not ("1"     >= striExpr("2")     ) and
        not ("1"     >= striExpr("20")    ) and
        not ("1"     >= striExpr("21")    ) and
        not ("1"     >= striExpr("22")    ) and
             "123"   >= striExpr("")        and
             "123"   >= striExpr("0")       and
             "123"   >= striExpr("1")       and
             "123"   >= striExpr("11")      and
             "123"   >= striExpr("12")      and
             "123"   >= striExpr("122")     and
             "123"   >= striExpr("1222")    and
             "123"   >= striExpr("1223")    and
             "123"   >= striExpr("1224")    and
             "123"   >= striExpr("123")     and
        not ("123"   >= striExpr("124")   ) and
        not ("123"   >= striExpr("13")    ) and
        not ("123"   >= striExpr("2")     ) and
        not ("123"   >= striExpr("21")    ) and
        not ("123"   >= striExpr("22")    ) and
        not ("123"   >= striExpr("222")   ) and
        not ("123"   >= striExpr("2222")  ) and
             ""      >= striExpr("")        and
             "0"     >= striExpr("")        and
             "00"    >= striExpr("")        and
             "01"    >= striExpr("")        and
             "02"    >= striExpr("")        and
             "1"     >= striExpr("")        and
             "10"    >= striExpr("")        and
             "11"    >= striExpr("")        and
             "12"    >= striExpr("")        and
             "2"     >= striExpr("")        and
             "20"    >= striExpr("")        and
             "21"    >= striExpr("")        and
             "22"    >= striExpr("")        and
             "22222" >= striExpr("")        and
        not (""      >= striExpr("1")     ) and
        not ("0"     >= striExpr("1")     ) and
        not ("00"    >= striExpr("1")     ) and
        not ("01"    >= striExpr("1")     ) and
        not ("02"    >= striExpr("1")     ) and
        not ("0234"  >= striExpr("1")     ) and
             "1"     >= striExpr("1")       and
             "10"    >= striExpr("1")       and
             "11"    >= striExpr("1")       and
             "110"   >= striExpr("1")       and
             "111"   >= striExpr("1")       and
             "112"   >= striExpr("1")       and
             "12"    >= striExpr("1")       and
             "2"     >= striExpr("1")       and
             "20"    >= striExpr("1")       and
             "21"    >= striExpr("1")       and
             "22"    >= striExpr("1")       and
        not (""      >= striExpr("123")   ) and
        not ("0"     >= striExpr("123")   ) and
        not ("1"     >= striExpr("123")   ) and
        not ("11"    >= striExpr("123")   ) and
        not ("12"    >= striExpr("123")   ) and
        not ("122"   >= striExpr("123")   ) and
        not ("1222"  >= striExpr("123")   ) and
        not ("1223"  >= striExpr("123")   ) and
        not ("1224"  >= striExpr("123")   ) and
             "123"   >= striExpr("123")     and
             "124"   >= striExpr("123")     and
             "13"    >= striExpr("123")     and
             "2"     >= striExpr("123")     and
             "21"    >= striExpr("123")     and
             "22"    >= striExpr("123")     and
             "222"   >= striExpr("123")     and
             "2222"  >= striExpr("123")
             ) then
      writeln(" ***** STRING >= STRING does not work correct.");
      okay := FALSE;
    end if;

    if  not (
             striExpr("")      >= striExpr("")        and
        not (striExpr("")      >= striExpr("0")     ) and
        not (striExpr("")      >= striExpr("00")    ) and
        not (striExpr("")      >= striExpr("01")    ) and
        not (striExpr("")      >= striExpr("02")    ) and
        not (striExpr("")      >= striExpr("1")     ) and
        not (striExpr("")      >= striExpr("10")    ) and
        not (striExpr("")      >= striExpr("11")    ) and
        not (striExpr("")      >= striExpr("12")    ) and
        not (striExpr("")      >= striExpr("2")     ) and
        not (striExpr("")      >= striExpr("20")    ) and
        not (striExpr("")      >= striExpr("21")    ) and
        not (striExpr("")      >= striExpr("22")    ) and
        not (striExpr("")      >= striExpr("22222") ) and
             striExpr("1")     >= striExpr("")        and
             striExpr("1")     >= striExpr("0")       and
             striExpr("1")     >= striExpr("00")      and
             striExpr("1")     >= striExpr("01")      and
             striExpr("1")     >= striExpr("02")      and
             striExpr("1")     >= striExpr("0234")    and
             striExpr("1")     >= striExpr("1")       and
        not (striExpr("1")     >= striExpr("10")    ) and
        not (striExpr("1")     >= striExpr("11")    ) and
        not (striExpr("1")     >= striExpr("110")   ) and
        not (striExpr("1")     >= striExpr("111")   ) and
        not (striExpr("1")     >= striExpr("112")   ) and
        not (striExpr("1")     >= striExpr("12")    ) and
        not (striExpr("1")     >= striExpr("2")     ) and
        not (striExpr("1")     >= striExpr("20")    ) and
        not (striExpr("1")     >= striExpr("21")    ) and
        not (striExpr("1")     >= striExpr("22")    ) and
             striExpr("123")   >= striExpr("")        and
             striExpr("123")   >= striExpr("0")       and
             striExpr("123")   >= striExpr("1")       and
             striExpr("123")   >= striExpr("11")      and
             striExpr("123")   >= striExpr("12")      and
             striExpr("123")   >= striExpr("122")     and
             striExpr("123")   >= striExpr("1222")    and
             striExpr("123")   >= striExpr("1223")    and
             striExpr("123")   >= striExpr("1224")    and
             striExpr("123")   >= striExpr("123")     and
        not (striExpr("123")   >= striExpr("124")   ) and
        not (striExpr("123")   >= striExpr("13")    ) and
        not (striExpr("123")   >= striExpr("2")     ) and
        not (striExpr("123")   >= striExpr("21")    ) and
        not (striExpr("123")   >= striExpr("22")    ) and
        not (striExpr("123")   >= striExpr("222")   ) and
        not (striExpr("123")   >= striExpr("2222")  ) and
             striExpr("")      >= striExpr("")        and
             striExpr("0")     >= striExpr("")        and
             striExpr("00")    >= striExpr("")        and
             striExpr("01")    >= striExpr("")        and
             striExpr("02")    >= striExpr("")        and
             striExpr("1")     >= striExpr("")        and
             striExpr("10")    >= striExpr("")        and
             striExpr("11")    >= striExpr("")        and
             striExpr("12")    >= striExpr("")        and
             striExpr("2")     >= striExpr("")        and
             striExpr("20")    >= striExpr("")        and
             striExpr("21")    >= striExpr("")        and
             striExpr("22")    >= striExpr("")        and
             striExpr("22222") >= striExpr("")        and
        not (striExpr("")      >= striExpr("1")     ) and
        not (striExpr("0")     >= striExpr("1")     ) and
        not (striExpr("00")    >= striExpr("1")     ) and
        not (striExpr("01")    >= striExpr("1")     ) and
        not (striExpr("02")    >= striExpr("1")     ) and
        not (striExpr("0234")  >= striExpr("1")     ) and
             striExpr("1")     >= striExpr("1")       and
             striExpr("10")    >= striExpr("1")       and
             striExpr("11")    >= striExpr("1")       and
             striExpr("110")   >= striExpr("1")       and
             striExpr("111")   >= striExpr("1")       and
             striExpr("112")   >= striExpr("1")       and
             striExpr("12")    >= striExpr("1")       and
             striExpr("2")     >= striExpr("1")       and
             striExpr("20")    >= striExpr("1")       and
             striExpr("21")    >= striExpr("1")       and
             striExpr("22")    >= striExpr("1")       and
        not (striExpr("")      >= striExpr("123")   ) and
        not (striExpr("0")     >= striExpr("123")   ) and
        not (striExpr("1")     >= striExpr("123")   ) and
        not (striExpr("11")    >= striExpr("123")   ) and
        not (striExpr("12")    >= striExpr("123")   ) and
        not (striExpr("122")   >= striExpr("123")   ) and
        not (striExpr("1222")  >= striExpr("123")   ) and
        not (striExpr("1223")  >= striExpr("123")   ) and
        not (striExpr("1224")  >= striExpr("123")   ) and
             striExpr("123")   >= striExpr("123")     and
             striExpr("124")   >= striExpr("123")     and
             striExpr("13")    >= striExpr("123")     and
             striExpr("2")     >= striExpr("123")     and
             striExpr("21")    >= striExpr("123")     and
             striExpr("22")    >= striExpr("123")     and
             striExpr("222")   >= striExpr("123")     and
             striExpr("2222")  >= striExpr("123")
             ) then
      writeln(" ***** STRING >= STRING does not work correct.");
      okay := FALSE;
    end if;

    if  not (
        not (""      < ""      ) and
        not ("0"     < ""      ) and
        not ("00"    < ""      ) and
        not ("01"    < ""      ) and
        not ("02"    < ""      ) and
        not ("1"     < ""      ) and
        not ("10"    < ""      ) and
        not ("11"    < ""      ) and
        not ("12"    < ""      ) and
        not ("2"     < ""      ) and
        not ("20"    < ""      ) and
        not ("21"    < ""      ) and
        not ("22"    < ""      ) and
        not ("22222" < ""      ) and
             ""      < "1"       and
             "0"     < "1"       and
             "00"    < "1"       and
             "01"    < "1"       and
             "02"    < "1"       and
             "0234"  < "1"       and
        not ("1"     < "1"     ) and
        not ("10"    < "1"     ) and
        not ("11"    < "1"     ) and
        not ("110"   < "1"     ) and
        not ("111"   < "1"     ) and
        not ("112"   < "1"     ) and
        not ("12"    < "1"     ) and
        not ("2"     < "1"     ) and
        not ("20"    < "1"     ) and
        not ("21"    < "1"     ) and
        not ("22"    < "1"     ) and
             ""      < "123"     and
             "0"     < "123"     and
             "1"     < "123"     and
             "11"    < "123"     and
             "12"    < "123"     and
             "122"   < "123"     and
             "1222"  < "123"     and
             "1223"  < "123"     and
             "1224"  < "123"     and
        not ("123"   < "123"   ) and
        not ("124"   < "123"   ) and
        not ("13"    < "123"   ) and
        not ("2"     < "123"   ) and
        not ("21"    < "123"   ) and
        not ("22"    < "123"   ) and
        not ("222"   < "123"   ) and
        not ("2222"  < "123"   ) and
        not (""      < ""      ) and
             ""      < "0"       and
             ""      < "00"      and
             ""      < "01"      and
             ""      < "02"      and
             ""      < "1"       and
             ""      < "10"      and
             ""      < "11"      and
             ""      < "12"      and
             ""      < "2"       and
             ""      < "20"      and
             ""      < "21"      and
             ""      < "22"      and
             ""      < "22222"   and
        not ("1"     < ""      ) and
        not ("1"     < "0"     ) and
        not ("1"     < "00"    ) and
        not ("1"     < "01"    ) and
        not ("1"     < "02"    ) and
        not ("1"     < "0234"  ) and
        not ("1"     < "1"     ) and
             "1"     < "10"      and
             "1"     < "11"      and
             "1"     < "110"     and
             "1"     < "111"     and
             "1"     < "112"     and
             "1"     < "12"      and
             "1"     < "2"       and
             "1"     < "20"      and
             "1"     < "21"      and
             "1"     < "22"      and
        not ("123"   < ""      ) and
        not ("123"   < "0"     ) and
        not ("123"   < "1"     ) and
        not ("123"   < "11"    ) and
        not ("123"   < "12"    ) and
        not ("123"   < "122"   ) and
        not ("123"   < "1222"  ) and
        not ("123"   < "1223"  ) and
        not ("123"   < "1224"  ) and
        not ("123"   < "123"   ) and
             "123"   < "124"     and
             "123"   < "13"      and
             "123"   < "2"       and
             "123"   < "21"      and
             "123"   < "22"      and
             "123"   < "222"     and
             "123"   < "2222"
             ) then
      writeln(" ***** STRING < STRING does not work correct.");
      okay := FALSE;
    end if;

    if  not (
        not (striExpr("")      < ""      ) and
        not (striExpr("0")     < ""      ) and
        not (striExpr("00")    < ""      ) and
        not (striExpr("01")    < ""      ) and
        not (striExpr("02")    < ""      ) and
        not (striExpr("1")     < ""      ) and
        not (striExpr("10")    < ""      ) and
        not (striExpr("11")    < ""      ) and
        not (striExpr("12")    < ""      ) and
        not (striExpr("2")     < ""      ) and
        not (striExpr("20")    < ""      ) and
        not (striExpr("21")    < ""      ) and
        not (striExpr("22")    < ""      ) and
        not (striExpr("22222") < ""      ) and
             striExpr("")      < "1"       and
             striExpr("0")     < "1"       and
             striExpr("00")    < "1"       and
             striExpr("01")    < "1"       and
             striExpr("02")    < "1"       and
             striExpr("0234")  < "1"       and
        not (striExpr("1")     < "1"     ) and
        not (striExpr("10")    < "1"     ) and
        not (striExpr("11")    < "1"     ) and
        not (striExpr("110")   < "1"     ) and
        not (striExpr("111")   < "1"     ) and
        not (striExpr("112")   < "1"     ) and
        not (striExpr("12")    < "1"     ) and
        not (striExpr("2")     < "1"     ) and
        not (striExpr("20")    < "1"     ) and
        not (striExpr("21")    < "1"     ) and
        not (striExpr("22")    < "1"     ) and
             striExpr("")      < "123"     and
             striExpr("0")     < "123"     and
             striExpr("1")     < "123"     and
             striExpr("11")    < "123"     and
             striExpr("12")    < "123"     and
             striExpr("122")   < "123"     and
             striExpr("1222")  < "123"     and
             striExpr("1223")  < "123"     and
             striExpr("1224")  < "123"     and
        not (striExpr("123")   < "123"   ) and
        not (striExpr("124")   < "123"   ) and
        not (striExpr("13")    < "123"   ) and
        not (striExpr("2")     < "123"   ) and
        not (striExpr("21")    < "123"   ) and
        not (striExpr("22")    < "123"   ) and
        not (striExpr("222")   < "123"   ) and
        not (striExpr("2222")  < "123"   ) and
        not (striExpr("")      < ""      ) and
             striExpr("")      < "0"       and
             striExpr("")      < "00"      and
             striExpr("")      < "01"      and
             striExpr("")      < "02"      and
             striExpr("")      < "1"       and
             striExpr("")      < "10"      and
             striExpr("")      < "11"      and
             striExpr("")      < "12"      and
             striExpr("")      < "2"       and
             striExpr("")      < "20"      and
             striExpr("")      < "21"      and
             striExpr("")      < "22"      and
             striExpr("")      < "22222"   and
        not (striExpr("1")     < ""      ) and
        not (striExpr("1")     < "0"     ) and
        not (striExpr("1")     < "00"    ) and
        not (striExpr("1")     < "01"    ) and
        not (striExpr("1")     < "02"    ) and
        not (striExpr("1")     < "0234"  ) and
        not (striExpr("1")     < "1"     ) and
             striExpr("1")     < "10"      and
             striExpr("1")     < "11"      and
             striExpr("1")     < "110"     and
             striExpr("1")     < "111"     and
             striExpr("1")     < "112"     and
             striExpr("1")     < "12"      and
             striExpr("1")     < "2"       and
             striExpr("1")     < "20"      and
             striExpr("1")     < "21"      and
             striExpr("1")     < "22"      and
        not (striExpr("123")   < ""      ) and
        not (striExpr("123")   < "0"     ) and
        not (striExpr("123")   < "1"     ) and
        not (striExpr("123")   < "11"    ) and
        not (striExpr("123")   < "12"    ) and
        not (striExpr("123")   < "122"   ) and
        not (striExpr("123")   < "1222"  ) and
        not (striExpr("123")   < "1223"  ) and
        not (striExpr("123")   < "1224"  ) and
        not (striExpr("123")   < "123"   ) and
             striExpr("123")   < "124"     and
             striExpr("123")   < "13"      and
             striExpr("123")   < "2"       and
             striExpr("123")   < "21"      and
             striExpr("123")   < "22"      and
             striExpr("123")   < "222"     and
             striExpr("123")   < "2222"
             ) then
      writeln(" ***** STRING < STRING does not work correct.");
      okay := FALSE;
    end if;

    if  not (
        not (""      < striExpr("")      ) and
        not ("0"     < striExpr("")      ) and
        not ("00"    < striExpr("")      ) and
        not ("01"    < striExpr("")      ) and
        not ("02"    < striExpr("")      ) and
        not ("1"     < striExpr("")      ) and
        not ("10"    < striExpr("")      ) and
        not ("11"    < striExpr("")      ) and
        not ("12"    < striExpr("")      ) and
        not ("2"     < striExpr("")      ) and
        not ("20"    < striExpr("")      ) and
        not ("21"    < striExpr("")      ) and
        not ("22"    < striExpr("")      ) and
        not ("22222" < striExpr("")      ) and
             ""      < striExpr("1")       and
             "0"     < striExpr("1")       and
             "00"    < striExpr("1")       and
             "01"    < striExpr("1")       and
             "02"    < striExpr("1")       and
             "0234"  < striExpr("1")       and
        not ("1"     < striExpr("1")     ) and
        not ("10"    < striExpr("1")     ) and
        not ("11"    < striExpr("1")     ) and
        not ("110"   < striExpr("1")     ) and
        not ("111"   < striExpr("1")     ) and
        not ("112"   < striExpr("1")     ) and
        not ("12"    < striExpr("1")     ) and
        not ("2"     < striExpr("1")     ) and
        not ("20"    < striExpr("1")     ) and
        not ("21"    < striExpr("1")     ) and
        not ("22"    < striExpr("1")     ) and
             ""      < striExpr("123")     and
             "0"     < striExpr("123")     and
             "1"     < striExpr("123")     and
             "11"    < striExpr("123")     and
             "12"    < striExpr("123")     and
             "122"   < striExpr("123")     and
             "1222"  < striExpr("123")     and
             "1223"  < striExpr("123")     and
             "1224"  < striExpr("123")     and
        not ("123"   < striExpr("123")   ) and
        not ("124"   < striExpr("123")   ) and
        not ("13"    < striExpr("123")   ) and
        not ("2"     < striExpr("123")   ) and
        not ("21"    < striExpr("123")   ) and
        not ("22"    < striExpr("123")   ) and
        not ("222"   < striExpr("123")   ) and
        not ("2222"  < striExpr("123")   ) and
        not (""      < striExpr("")      ) and
             ""      < striExpr("0")       and
             ""      < striExpr("00")      and
             ""      < striExpr("01")      and
             ""      < striExpr("02")      and
             ""      < striExpr("1")       and
             ""      < striExpr("10")      and
             ""      < striExpr("11")      and
             ""      < striExpr("12")      and
             ""      < striExpr("2")       and
             ""      < striExpr("20")      and
             ""      < striExpr("21")      and
             ""      < striExpr("22")      and
             ""      < striExpr("22222")   and
        not ("1"     < striExpr("")      ) and
        not ("1"     < striExpr("0")     ) and
        not ("1"     < striExpr("00")    ) and
        not ("1"     < striExpr("01")    ) and
        not ("1"     < striExpr("02")    ) and
        not ("1"     < striExpr("0234")  ) and
        not ("1"     < striExpr("1")     ) and
             "1"     < striExpr("10")      and
             "1"     < striExpr("11")      and
             "1"     < striExpr("110")     and
             "1"     < striExpr("111")     and
             "1"     < striExpr("112")     and
             "1"     < striExpr("12")      and
             "1"     < striExpr("2")       and
             "1"     < striExpr("20")      and
             "1"     < striExpr("21")      and
             "1"     < striExpr("22")      and
        not ("123"   < striExpr("")      ) and
        not ("123"   < striExpr("0")     ) and
        not ("123"   < striExpr("1")     ) and
        not ("123"   < striExpr("11")    ) and
        not ("123"   < striExpr("12")    ) and
        not ("123"   < striExpr("122")   ) and
        not ("123"   < striExpr("1222")  ) and
        not ("123"   < striExpr("1223")  ) and
        not ("123"   < striExpr("1224")  ) and
        not ("123"   < striExpr("123")   ) and
             "123"   < striExpr("124")     and
             "123"   < striExpr("13")      and
             "123"   < striExpr("2")       and
             "123"   < striExpr("21")      and
             "123"   < striExpr("22")      and
             "123"   < striExpr("222")     and
             "123"   < striExpr("2222")
             ) then
      writeln(" ***** STRING < STRING does not work correct.");
      okay := FALSE;
    end if;

    if  not (
        not (striExpr("")      < striExpr("")      ) and
        not (striExpr("0")     < striExpr("")      ) and
        not (striExpr("00")    < striExpr("")      ) and
        not (striExpr("01")    < striExpr("")      ) and
        not (striExpr("02")    < striExpr("")      ) and
        not (striExpr("1")     < striExpr("")      ) and
        not (striExpr("10")    < striExpr("")      ) and
        not (striExpr("11")    < striExpr("")      ) and
        not (striExpr("12")    < striExpr("")      ) and
        not (striExpr("2")     < striExpr("")      ) and
        not (striExpr("20")    < striExpr("")      ) and
        not (striExpr("21")    < striExpr("")      ) and
        not (striExpr("22")    < striExpr("")      ) and
        not (striExpr("22222") < striExpr("")      ) and
             striExpr("")      < striExpr("1")       and
             striExpr("0")     < striExpr("1")       and
             striExpr("00")    < striExpr("1")       and
             striExpr("01")    < striExpr("1")       and
             striExpr("02")    < striExpr("1")       and
             striExpr("0234")  < striExpr("1")       and
        not (striExpr("1")     < striExpr("1")     ) and
        not (striExpr("10")    < striExpr("1")     ) and
        not (striExpr("11")    < striExpr("1")     ) and
        not (striExpr("110")   < striExpr("1")     ) and
        not (striExpr("111")   < striExpr("1")     ) and
        not (striExpr("112")   < striExpr("1")     ) and
        not (striExpr("12")    < striExpr("1")     ) and
        not (striExpr("2")     < striExpr("1")     ) and
        not (striExpr("20")    < striExpr("1")     ) and
        not (striExpr("21")    < striExpr("1")     ) and
        not (striExpr("22")    < striExpr("1")     ) and
             striExpr("")      < striExpr("123")     and
             striExpr("0")     < striExpr("123")     and
             striExpr("1")     < striExpr("123")     and
             striExpr("11")    < striExpr("123")     and
             striExpr("12")    < striExpr("123")     and
             striExpr("122")   < striExpr("123")     and
             striExpr("1222")  < striExpr("123")     and
             striExpr("1223")  < striExpr("123")     and
             striExpr("1224")  < striExpr("123")     and
        not (striExpr("123")   < striExpr("123")   ) and
        not (striExpr("124")   < striExpr("123")   ) and
        not (striExpr("13")    < striExpr("123")   ) and
        not (striExpr("2")     < striExpr("123")   ) and
        not (striExpr("21")    < striExpr("123")   ) and
        not (striExpr("22")    < striExpr("123")   ) and
        not (striExpr("222")   < striExpr("123")   ) and
        not (striExpr("2222")  < striExpr("123")   ) and
        not (striExpr("")      < striExpr("")      ) and
             striExpr("")      < striExpr("0")       and
             striExpr("")      < striExpr("00")      and
             striExpr("")      < striExpr("01")      and
             striExpr("")      < striExpr("02")      and
             striExpr("")      < striExpr("1")       and
             striExpr("")      < striExpr("10")      and
             striExpr("")      < striExpr("11")      and
             striExpr("")      < striExpr("12")      and
             striExpr("")      < striExpr("2")       and
             striExpr("")      < striExpr("20")      and
             striExpr("")      < striExpr("21")      and
             striExpr("")      < striExpr("22")      and
             striExpr("")      < striExpr("22222")   and
        not (striExpr("1")     < striExpr("")      ) and
        not (striExpr("1")     < striExpr("0")     ) and
        not (striExpr("1")     < striExpr("00")    ) and
        not (striExpr("1")     < striExpr("01")    ) and
        not (striExpr("1")     < striExpr("02")    ) and
        not (striExpr("1")     < striExpr("0234")  ) and
        not (striExpr("1")     < striExpr("1")     ) and
             striExpr("1")     < striExpr("10")      and
             striExpr("1")     < striExpr("11")      and
             striExpr("1")     < striExpr("110")     and
             striExpr("1")     < striExpr("111")     and
             striExpr("1")     < striExpr("112")     and
             striExpr("1")     < striExpr("12")      and
             striExpr("1")     < striExpr("2")       and
             striExpr("1")     < striExpr("20")      and
             striExpr("1")     < striExpr("21")      and
             striExpr("1")     < striExpr("22")      and
        not (striExpr("123")   < striExpr("")      ) and
        not (striExpr("123")   < striExpr("0")     ) and
        not (striExpr("123")   < striExpr("1")     ) and
        not (striExpr("123")   < striExpr("11")    ) and
        not (striExpr("123")   < striExpr("12")    ) and
        not (striExpr("123")   < striExpr("122")   ) and
        not (striExpr("123")   < striExpr("1222")  ) and
        not (striExpr("123")   < striExpr("1223")  ) and
        not (striExpr("123")   < striExpr("1224")  ) and
        not (striExpr("123")   < striExpr("123")   ) and
             striExpr("123")   < striExpr("124")     and
             striExpr("123")   < striExpr("13")      and
             striExpr("123")   < striExpr("2")       and
             striExpr("123")   < striExpr("21")      and
             striExpr("123")   < striExpr("22")      and
             striExpr("123")   < striExpr("222")     and
             striExpr("123")   < striExpr("2222")
             ) then
      writeln(" ***** STRING < STRING does not work correct.");
      okay := FALSE;
    end if;

    if  not (
             ""      <= ""        and
        not ("0"     <= ""      ) and
        not ("00"    <= ""      ) and
        not ("01"    <= ""      ) and
        not ("02"    <= ""      ) and
        not ("1"     <= ""      ) and
        not ("10"    <= ""      ) and
        not ("11"    <= ""      ) and
        not ("12"    <= ""      ) and
        not ("2"     <= ""      ) and
        not ("20"    <= ""      ) and
        not ("21"    <= ""      ) and
        not ("22"    <= ""      ) and
        not ("22222" <= ""      ) and
             ""      <= "1"       and
             "0"     <= "1"       and
             "00"    <= "1"       and
             "01"    <= "1"       and
             "02"    <= "1"       and
             "0234"  <= "1"       and
             "1"     <= "1"       and
        not ("10"    <= "1"     ) and
        not ("11"    <= "1"     ) and
        not ("110"   <= "1"     ) and
        not ("111"   <= "1"     ) and
        not ("112"   <= "1"     ) and
        not ("12"    <= "1"     ) and
        not ("2"     <= "1"     ) and
        not ("20"    <= "1"     ) and
        not ("21"    <= "1"     ) and
        not ("22"    <= "1"     ) and
             ""      <= "123"     and
             "0"     <= "123"     and
             "1"     <= "123"     and
             "11"    <= "123"     and
             "12"    <= "123"     and
             "122"   <= "123"     and
             "1222"  <= "123"     and
             "1223"  <= "123"     and
             "1224"  <= "123"     and
             "123"   <= "123"     and
        not ("124"   <= "123"   ) and
        not ("13"    <= "123"   ) and
        not ("2"     <= "123"   ) and
        not ("21"    <= "123"   ) and
        not ("22"    <= "123"   ) and
        not ("222"   <= "123"   ) and
        not ("2222"  <= "123"   ) and
             ""      <= ""        and
             ""      <= "0"       and
             ""      <= "00"      and
             ""      <= "01"      and
             ""      <= "02"      and
             ""      <= "1"       and
             ""      <= "10"      and
             ""      <= "11"      and
             ""      <= "12"      and
             ""      <= "2"       and
             ""      <= "20"      and
             ""      <= "21"      and
             ""      <= "22"      and
             ""      <= "22222"   and
        not ("1"     <= ""      ) and
        not ("1"     <= "0"     ) and
        not ("1"     <= "00"    ) and
        not ("1"     <= "01"    ) and
        not ("1"     <= "02"    ) and
        not ("1"     <= "0234"  ) and
             "1"     <= "1"       and
             "1"     <= "10"      and
             "1"     <= "11"      and
             "1"     <= "110"     and
             "1"     <= "111"     and
             "1"     <= "112"     and
             "1"     <= "12"      and
             "1"     <= "2"       and
             "1"     <= "20"      and
             "1"     <= "21"      and
             "1"     <= "22"      and
        not ("123"   <= ""      ) and
        not ("123"   <= "0"     ) and
        not ("123"   <= "1"     ) and
        not ("123"   <= "11"    ) and
        not ("123"   <= "12"    ) and
        not ("123"   <= "122"   ) and
        not ("123"   <= "1222"  ) and
        not ("123"   <= "1223"  ) and
        not ("123"   <= "1224"  ) and
             "123"   <= "123"     and
             "123"   <= "124"     and
             "123"   <= "13"      and
             "123"   <= "2"       and
             "123"   <= "21"      and
             "123"   <= "22"      and
             "123"   <= "222"     and
             "123"   <= "2222"
             ) then
      writeln(" ***** STRING <= STRING does not work correct.");
      okay := FALSE;
    end if;

    if  not (
             striExpr("")      <= ""        and
        not (striExpr("0")     <= ""      ) and
        not (striExpr("00")    <= ""      ) and
        not (striExpr("01")    <= ""      ) and
        not (striExpr("02")    <= ""      ) and
        not (striExpr("1")     <= ""      ) and
        not (striExpr("10")    <= ""      ) and
        not (striExpr("11")    <= ""      ) and
        not (striExpr("12")    <= ""      ) and
        not (striExpr("2")     <= ""      ) and
        not (striExpr("20")    <= ""      ) and
        not (striExpr("21")    <= ""      ) and
        not (striExpr("22")    <= ""      ) and
        not (striExpr("22222") <= ""      ) and
             striExpr("")      <= "1"       and
             striExpr("0")     <= "1"       and
             striExpr("00")    <= "1"       and
             striExpr("01")    <= "1"       and
             striExpr("02")    <= "1"       and
             striExpr("0234")  <= "1"       and
             striExpr("1")     <= "1"       and
        not (striExpr("10")    <= "1"     ) and
        not (striExpr("11")    <= "1"     ) and
        not (striExpr("110")   <= "1"     ) and
        not (striExpr("111")   <= "1"     ) and
        not (striExpr("112")   <= "1"     ) and
        not (striExpr("12")    <= "1"     ) and
        not (striExpr("2")     <= "1"     ) and
        not (striExpr("20")    <= "1"     ) and
        not (striExpr("21")    <= "1"     ) and
        not (striExpr("22")    <= "1"     ) and
             striExpr("")      <= "123"     and
             striExpr("0")     <= "123"     and
             striExpr("1")     <= "123"     and
             striExpr("11")    <= "123"     and
             striExpr("12")    <= "123"     and
             striExpr("122")   <= "123"     and
             striExpr("1222")  <= "123"     and
             striExpr("1223")  <= "123"     and
             striExpr("1224")  <= "123"     and
             striExpr("123")   <= "123"     and
        not (striExpr("124")   <= "123"   ) and
        not (striExpr("13")    <= "123"   ) and
        not (striExpr("2")     <= "123"   ) and
        not (striExpr("21")    <= "123"   ) and
        not (striExpr("22")    <= "123"   ) and
        not (striExpr("222")   <= "123"   ) and
        not (striExpr("2222")  <= "123"   ) and
             striExpr("")      <= ""        and
             striExpr("")      <= "0"       and
             striExpr("")      <= "00"      and
             striExpr("")      <= "01"      and
             striExpr("")      <= "02"      and
             striExpr("")      <= "1"       and
             striExpr("")      <= "10"      and
             striExpr("")      <= "11"      and
             striExpr("")      <= "12"      and
             striExpr("")      <= "2"       and
             striExpr("")      <= "20"      and
             striExpr("")      <= "21"      and
             striExpr("")      <= "22"      and
             striExpr("")      <= "22222"   and
        not (striExpr("1")     <= ""      ) and
        not (striExpr("1")     <= "0"     ) and
        not (striExpr("1")     <= "00"    ) and
        not (striExpr("1")     <= "01"    ) and
        not (striExpr("1")     <= "02"    ) and
        not (striExpr("1")     <= "0234"  ) and
             striExpr("1")     <= "1"       and
             striExpr("1")     <= "10"      and
             striExpr("1")     <= "11"      and
             striExpr("1")     <= "110"     and
             striExpr("1")     <= "111"     and
             striExpr("1")     <= "112"     and
             striExpr("1")     <= "12"      and
             striExpr("1")     <= "2"       and
             striExpr("1")     <= "20"      and
             striExpr("1")     <= "21"      and
             striExpr("1")     <= "22"      and
        not (striExpr("123")   <= ""      ) and
        not (striExpr("123")   <= "0"     ) and
        not (striExpr("123")   <= "1"     ) and
        not (striExpr("123")   <= "11"    ) and
        not (striExpr("123")   <= "12"    ) and
        not (striExpr("123")   <= "122"   ) and
        not (striExpr("123")   <= "1222"  ) and
        not (striExpr("123")   <= "1223"  ) and
        not (striExpr("123")   <= "1224"  ) and
             striExpr("123")   <= "123"     and
             striExpr("123")   <= "124"     and
             striExpr("123")   <= "13"      and
             striExpr("123")   <= "2"       and
             striExpr("123")   <= "21"      and
             striExpr("123")   <= "22"      and
             striExpr("123")   <= "222"     and
             striExpr("123")   <= "2222"
             ) then
      writeln(" ***** STRING <= STRING does not work correct.");
      okay := FALSE;
    end if;

    if  not (
             ""      <= striExpr("")        and
        not ("0"     <= striExpr("")      ) and
        not ("00"    <= striExpr("")      ) and
        not ("01"    <= striExpr("")      ) and
        not ("02"    <= striExpr("")      ) and
        not ("1"     <= striExpr("")      ) and
        not ("10"    <= striExpr("")      ) and
        not ("11"    <= striExpr("")      ) and
        not ("12"    <= striExpr("")      ) and
        not ("2"     <= striExpr("")      ) and
        not ("20"    <= striExpr("")      ) and
        not ("21"    <= striExpr("")      ) and
        not ("22"    <= striExpr("")      ) and
        not ("22222" <= striExpr("")      ) and
             ""      <= striExpr("1")       and
             "0"     <= striExpr("1")       and
             "00"    <= striExpr("1")       and
             "01"    <= striExpr("1")       and
             "02"    <= striExpr("1")       and
             "0234"  <= striExpr("1")       and
             "1"     <= striExpr("1")       and
        not ("10"    <= striExpr("1")     ) and
        not ("11"    <= striExpr("1")     ) and
        not ("110"   <= striExpr("1")     ) and
        not ("111"   <= striExpr("1")     ) and
        not ("112"   <= striExpr("1")     ) and
        not ("12"    <= striExpr("1")     ) and
        not ("2"     <= striExpr("1")     ) and
        not ("20"    <= striExpr("1")     ) and
        not ("21"    <= striExpr("1")     ) and
        not ("22"    <= striExpr("1")     ) and
             ""      <= striExpr("123")     and
             "0"     <= striExpr("123")     and
             "1"     <= striExpr("123")     and
             "11"    <= striExpr("123")     and
             "12"    <= striExpr("123")     and
             "122"   <= striExpr("123")     and
             "1222"  <= striExpr("123")     and
             "1223"  <= striExpr("123")     and
             "1224"  <= striExpr("123")     and
             "123"   <= striExpr("123")     and
        not ("124"   <= striExpr("123")   ) and
        not ("13"    <= striExpr("123")   ) and
        not ("2"     <= striExpr("123")   ) and
        not ("21"    <= striExpr("123")   ) and
        not ("22"    <= striExpr("123")   ) and
        not ("222"   <= striExpr("123")   ) and
        not ("2222"  <= striExpr("123")   ) and
             ""      <= striExpr("")        and
             ""      <= striExpr("0")       and
             ""      <= striExpr("00")      and
             ""      <= striExpr("01")      and
             ""      <= striExpr("02")      and
             ""      <= striExpr("1")       and
             ""      <= striExpr("10")      and
             ""      <= striExpr("11")      and
             ""      <= striExpr("12")      and
             ""      <= striExpr("2")       and
             ""      <= striExpr("20")      and
             ""      <= striExpr("21")      and
             ""      <= striExpr("22")      and
             ""      <= striExpr("22222")   and
        not ("1"     <= striExpr("")      ) and
        not ("1"     <= striExpr("0")     ) and
        not ("1"     <= striExpr("00")    ) and
        not ("1"     <= striExpr("01")    ) and
        not ("1"     <= striExpr("02")    ) and
        not ("1"     <= striExpr("0234")  ) and
             "1"     <= striExpr("1")       and
             "1"     <= striExpr("10")      and
             "1"     <= striExpr("11")      and
             "1"     <= striExpr("110")     and
             "1"     <= striExpr("111")     and
             "1"     <= striExpr("112")     and
             "1"     <= striExpr("12")      and
             "1"     <= striExpr("2")       and
             "1"     <= striExpr("20")      and
             "1"     <= striExpr("21")      and
             "1"     <= striExpr("22")      and
        not ("123"   <= striExpr("")      ) and
        not ("123"   <= striExpr("0")     ) and
        not ("123"   <= striExpr("1")     ) and
        not ("123"   <= striExpr("11")    ) and
        not ("123"   <= striExpr("12")    ) and
        not ("123"   <= striExpr("122")   ) and
        not ("123"   <= striExpr("1222")  ) and
        not ("123"   <= striExpr("1223")  ) and
        not ("123"   <= striExpr("1224")  ) and
             "123"   <= striExpr("123")     and
             "123"   <= striExpr("124")     and
             "123"   <= striExpr("13")      and
             "123"   <= striExpr("2")       and
             "123"   <= striExpr("21")      and
             "123"   <= striExpr("22")      and
             "123"   <= striExpr("222")     and
             "123"   <= striExpr("2222")
             ) then
      writeln(" ***** STRING <= STRING does not work correct.");
      okay := FALSE;
    end if;

    if  not (
             striExpr("")      <= striExpr("")        and
        not (striExpr("0")     <= striExpr("")      ) and
        not (striExpr("00")    <= striExpr("")      ) and
        not (striExpr("01")    <= striExpr("")      ) and
        not (striExpr("02")    <= striExpr("")      ) and
        not (striExpr("1")     <= striExpr("")      ) and
        not (striExpr("10")    <= striExpr("")      ) and
        not (striExpr("11")    <= striExpr("")      ) and
        not (striExpr("12")    <= striExpr("")      ) and
        not (striExpr("2")     <= striExpr("")      ) and
        not (striExpr("20")    <= striExpr("")      ) and
        not (striExpr("21")    <= striExpr("")      ) and
        not (striExpr("22")    <= striExpr("")      ) and
        not (striExpr("22222") <= striExpr("")      ) and
             striExpr("")      <= striExpr("1")       and
             striExpr("0")     <= striExpr("1")       and
             striExpr("00")    <= striExpr("1")       and
             striExpr("01")    <= striExpr("1")       and
             striExpr("02")    <= striExpr("1")       and
             striExpr("0234")  <= striExpr("1")       and
             striExpr("1")     <= striExpr("1")       and
        not (striExpr("10")    <= striExpr("1")     ) and
        not (striExpr("11")    <= striExpr("1")     ) and
        not (striExpr("110")   <= striExpr("1")     ) and
        not (striExpr("111")   <= striExpr("1")     ) and
        not (striExpr("112")   <= striExpr("1")     ) and
        not (striExpr("12")    <= striExpr("1")     ) and
        not (striExpr("2")     <= striExpr("1")     ) and
        not (striExpr("20")    <= striExpr("1")     ) and
        not (striExpr("21")    <= striExpr("1")     ) and
        not (striExpr("22")    <= striExpr("1")     ) and
             striExpr("")      <= striExpr("123")     and
             striExpr("0")     <= striExpr("123")     and
             striExpr("1")     <= striExpr("123")     and
             striExpr("11")    <= striExpr("123")     and
             striExpr("12")    <= striExpr("123")     and
             striExpr("122")   <= striExpr("123")     and
             striExpr("1222")  <= striExpr("123")     and
             striExpr("1223")  <= striExpr("123")     and
             striExpr("1224")  <= striExpr("123")     and
             striExpr("123")   <= striExpr("123")     and
        not (striExpr("124")   <= striExpr("123")   ) and
        not (striExpr("13")    <= striExpr("123")   ) and
        not (striExpr("2")     <= striExpr("123")   ) and
        not (striExpr("21")    <= striExpr("123")   ) and
        not (striExpr("22")    <= striExpr("123")   ) and
        not (striExpr("222")   <= striExpr("123")   ) and
        not (striExpr("2222")  <= striExpr("123")   ) and
             striExpr("")      <= striExpr("")        and
             striExpr("")      <= striExpr("0")       and
             striExpr("")      <= striExpr("00")      and
             striExpr("")      <= striExpr("01")      and
             striExpr("")      <= striExpr("02")      and
             striExpr("")      <= striExpr("1")       and
             striExpr("")      <= striExpr("10")      and
             striExpr("")      <= striExpr("11")      and
             striExpr("")      <= striExpr("12")      and
             striExpr("")      <= striExpr("2")       and
             striExpr("")      <= striExpr("20")      and
             striExpr("")      <= striExpr("21")      and
             striExpr("")      <= striExpr("22")      and
             striExpr("")      <= striExpr("22222")   and
        not (striExpr("1")     <= striExpr("")      ) and
        not (striExpr("1")     <= striExpr("0")     ) and
        not (striExpr("1")     <= striExpr("00")    ) and
        not (striExpr("1")     <= striExpr("01")    ) and
        not (striExpr("1")     <= striExpr("02")    ) and
        not (striExpr("1")     <= striExpr("0234")  ) and
             striExpr("1")     <= striExpr("1")       and
             striExpr("1")     <= striExpr("10")      and
             striExpr("1")     <= striExpr("11")      and
             striExpr("1")     <= striExpr("110")     and
             striExpr("1")     <= striExpr("111")     and
             striExpr("1")     <= striExpr("112")     and
             striExpr("1")     <= striExpr("12")      and
             striExpr("1")     <= striExpr("2")       and
             striExpr("1")     <= striExpr("20")      and
             striExpr("1")     <= striExpr("21")      and
             striExpr("1")     <= striExpr("22")      and
        not (striExpr("123")   <= striExpr("")      ) and
        not (striExpr("123")   <= striExpr("0")     ) and
        not (striExpr("123")   <= striExpr("1")     ) and
        not (striExpr("123")   <= striExpr("11")    ) and
        not (striExpr("123")   <= striExpr("12")    ) and
        not (striExpr("123")   <= striExpr("122")   ) and
        not (striExpr("123")   <= striExpr("1222")  ) and
        not (striExpr("123")   <= striExpr("1223")  ) and
        not (striExpr("123")   <= striExpr("1224")  ) and
             striExpr("123")   <= striExpr("123")     and
             striExpr("123")   <= striExpr("124")     and
             striExpr("123")   <= striExpr("13")      and
             striExpr("123")   <= striExpr("2")       and
             striExpr("123")   <= striExpr("21")      and
             striExpr("123")   <= striExpr("22")      and
             striExpr("123")   <= striExpr("222")     and
             striExpr("123")   <= striExpr("2222")
             ) then
      writeln(" ***** STRING <= STRING does not work correct.");
      okay := FALSE;
    end if;

    if  "\2050;" < "\1152;" or
        "\1152;" > "\2050;" then
      writeln(" ***** \"\\4096;\" < \"\\1152;\" does not work correct.");
      okay := FALSE;
    end if;
    if  "\16#0201;" < "\16#0102;" or
        "\16#0102;" > "\16#0201;" then
      writeln(" ***** \"\\16#0201;\" < \"\\16#0102;\" does not work correct.");
      okay := FALSE;
    end if;
    if  "\16#030201;" < "\16#010203;" or
        "\16#010203;" > "\16#030201;" then
      writeln(" ***** \"\\16#030201;\" < \"\\16#010203;\" does not work correct.");
      okay := FALSE;
    end if;
    if  "\16#04030201;" < "\16#01020304;" or
        "\16#01020304;" > "\16#04030201;" then
      writeln(" ***** \"\\16#04030201;\" < \"\\16#01020304;\" does not work correct.");
      okay := FALSE;
    end if;
    if  compare("",       "")       <>  0 or
        compare("",       "0")      <> -1 or
        compare("",       "00")     <> -1 or
        compare("",       "01")     <> -1 or
        compare("",       "02")     <> -1 or
        compare("",       "1")      <> -1 or
        compare("",       "10")     <> -1 or
        compare("",       "11")     <> -1 or
        compare("",       "12")     <> -1 or
        compare("",       "2")      <> -1 or
        compare("",       "20")     <> -1 or
        compare("",       "21")     <> -1 or
        compare("",       "22")     <> -1 or
        compare("",       "22222")  <> -1 or
        compare("1",      "")       <>  1 or
        compare("1",      "0")      <>  1 or
        compare("1",      "00")     <>  1 or
        compare("1",      "01")     <>  1 or
        compare("1",      "02")     <>  1 or
        compare("1",      "0234")   <>  1 or
        compare("1",      "1")      <>  0 or
        compare("1",      "10")     <> -1 or
        compare("1",      "11")     <> -1 or
        compare("1",      "110")    <> -1 or
        compare("1",      "111")    <> -1 or
        compare("1",      "112")    <> -1 or
        compare("1",      "12")     <> -1 or
        compare("1",      "2")      <> -1 or
        compare("1",      "20")     <> -1 or
        compare("1",      "21")     <> -1 or
        compare("1",      "22")     <> -1 or
        compare("123",    "")       <>  1 or
        compare("123",    "0")      <>  1 or
        compare("123",    "1")      <>  1 or
        compare("123",    "11")     <>  1 or
        compare("123",    "12")     <>  1 or
        compare("123",    "122")    <>  1 or
        compare("123",    "1222")   <>  1 or
        compare("123",    "1223")   <>  1 or
        compare("123",    "1224")   <>  1 or
        compare("123",    "123")    <>  0 or
        compare("123",    "1230")   <> -1 or
        compare("123",    "1231")   <> -1 or
        compare("123",    "1232")   <> -1 or
        compare("123",    "1233")   <> -1 or
        compare("123",    "1234")   <> -1 or
        compare("123",    "124")    <> -1 or
        compare("123",    "13")     <> -1 or
        compare("123",    "2")      <> -1 or
        compare("123",    "21")     <> -1 or
        compare("123",    "22")     <> -1 or
        compare("123",    "222")    <> -1 or
        compare("123",    "2222")   <> -1 or
        compare("",       "")       <>  0 or
        compare("0",      "")       <>  1 or
        compare("00",     "")       <>  1 or
        compare("01",     "")       <>  1 or
        compare("02",     "")       <>  1 or
        compare("1",      "")       <>  1 or
        compare("10",     "")       <>  1 or
        compare("11",     "")       <>  1 or
        compare("12",     "")       <>  1 or
        compare("2",      "")       <>  1 or
        compare("20",     "")       <>  1 or
        compare("21",     "")       <>  1 or
        compare("22",     "")       <>  1 or
        compare("22222",  "")       <>  1 or
        compare("",       "1")      <> -1 or
        compare("0",      "1")      <> -1 or
        compare("00",     "1")      <> -1 or
        compare("01",     "1")      <> -1 or
        compare("02",     "1")      <> -1 or
        compare("0234",   "1")      <> -1 or
        compare("1",      "1")      <>  0 or
        compare("10",     "1")      <>  1 or
        compare("11",     "1")      <>  1 or
        compare("110",    "1")      <>  1 or
        compare("111",    "1")      <>  1 or
        compare("112",    "1")      <>  1 or
        compare("12",     "1")      <>  1 or
        compare("2",      "1")      <>  1 or
        compare("20",     "1")      <>  1 or
        compare("21",     "1")      <>  1 or
        compare("22",     "1")      <>  1 or
        compare("",       "123")    <> -1 or
        compare("0",      "123")    <> -1 or
        compare("1",      "123")    <> -1 or
        compare("11",     "123")    <> -1 or
        compare("12",     "123")    <> -1 or
        compare("122",    "123")    <> -1 or
        compare("1222",   "123")    <> -1 or
        compare("1223",   "123")    <> -1 or
        compare("1224",   "123")    <> -1 or
        compare("123",    "123")    <>  0 or
        compare("1230",   "123")    <>  1 or
        compare("1231",   "123")    <>  1 or
        compare("1232",   "123")    <>  1 or
        compare("1233",   "123")    <>  1 or
        compare("1234",   "123")    <>  1 or
        compare("124",    "123")    <>  1 or
        compare("13",     "123")    <>  1 or
        compare("2",      "123")    <>  1 or
        compare("21",     "123")    <>  1 or
        compare("22",     "123")    <>  1 or
        compare("222",    "123")    <>  1 or
        compare("2222",   "123")    <>  1 then
      writeln(" ***** compare(STRING, STRING) does not work correct.");
      okay := FALSE;
    end if;
    arr2 := sort(arr1);
    for name key index range arr2 do
      ok := ok and name = arr1[index]
    end for;
    if not ok then
      writeln(" ***** Sorting with compare(STRING, STRING) does not work correct.");
      okay := FALSE;
    end if;
    if okay then
      writeln("String comparisons work correct.");
    end if;
  end func;


const proc: check_string_length is func
  local
    var boolean: okay is TRUE;
  begin
    if  length("")                            <>  0 or
        length("a")                           <>  1 or
        length("ab")                          <>  2 or
        length("abc")                         <>  3 or
        length("abcdefghijklghijklmnopqxyz")  <> 26 or
        length("\0;")                         <>  1 or
        length("\0;\0;")                      <>  2 or
        length("\0;\0;\0;\0;\0;\0;\0;\0;\0;") <>  9 or
        length(striExpr(""))                            <>  0 or
        length(striExpr("a"))                           <>  1 or
        length(striExpr("ab"))                          <>  2 or
        length(striExpr("abc"))                         <>  3 or
        length(striExpr("abcdefghijklghijklmnopqxyz"))  <> 26 or
        length(striExpr("\0;"))                         <>  1 or
        length(striExpr("\0;\0;"))                      <>  2 or
        length(striExpr("\0;\0;\0;\0;\0;\0;\0;\0;\0;")) <>  9 or

        length(         ""  &          "" ) <> 0 or
        length(striExpr("") &          "" ) <> 0 or
        length(         ""  & striExpr("")) <> 0 or
        length(striExpr("") & striExpr("")) <> 0 or
        length(         ""  &          "c" ) <> 1 or
        length(striExpr("") &          "c" ) <> 1 or
        length(         ""  & striExpr("c")) <> 1 or
        length(striExpr("") & striExpr("c")) <> 1 or
        length(         "ab"  &          "" ) <> 2 or
        length(striExpr("ab") &          "" ) <> 2 or
        length(         "ab"  & striExpr("")) <> 2 or
        length(striExpr("ab") & striExpr("")) <> 2 or
        length(         "ab"  &          "c" ) <> 3 or
        length(striExpr("ab") &          "c" ) <> 3 or
        length(         "ab"  & striExpr("c")) <> 3 or
        length(striExpr("ab") & striExpr("c")) <> 3 or

        length(         ""  &          ""  &          "" ) <> 0 or
        length(striExpr("") &          ""  &          "" ) <> 0 or
        length(         ""  & striExpr("") &          "" ) <> 0 or
        length(striExpr("") & striExpr("") &          "" ) <> 0 or
        length(         ""  &          ""  & striExpr("")) <> 0 or
        length(striExpr("") &          ""  & striExpr("")) <> 0 or
        length(         ""  & striExpr("") & striExpr("")) <> 0 or
        length(striExpr("") & striExpr("") & striExpr("")) <> 0 or
        length(         ""  &          ""  &          "g" ) <> 1 or
        length(striExpr("") &          ""  &          "g" ) <> 1 or
        length(         ""  & striExpr("") &          "g" ) <> 1 or
        length(striExpr("") & striExpr("") &          "g" ) <> 1 or
        length(         ""  &          ""  & striExpr("g")) <> 1 or
        length(striExpr("") &          ""  & striExpr("g")) <> 1 or
        length(         ""  & striExpr("") & striExpr("g")) <> 1 or
        length(striExpr("") & striExpr("") & striExpr("g")) <> 1 or
        length(         ""  &          "ef"  &          "" ) <> 2 or
        length(striExpr("") &          "ef"  &          "" ) <> 2 or
        length(         ""  & striExpr("ef") &          "" ) <> 2 or
        length(striExpr("") & striExpr("ef") &          "" ) <> 2 or
        length(         ""  &          "ef"  & striExpr("")) <> 2 or
        length(striExpr("") &          "ef"  & striExpr("")) <> 2 or
        length(         ""  & striExpr("ef") & striExpr("")) <> 2 or
        length(striExpr("") & striExpr("ef") & striExpr("")) <> 2 or
        length(         ""  &          "ef"  &          "g" ) <> 3 or
        length(striExpr("") &          "ef"  &          "g" ) <> 3 or
        length(         ""  & striExpr("ef") &          "g" ) <> 3 or
        length(striExpr("") & striExpr("ef") &          "g" ) <> 3 or
        length(         ""  &          "ef"  & striExpr("g")) <> 3 or
        length(striExpr("") &          "ef"  & striExpr("g")) <> 3 or
        length(         ""  & striExpr("ef") & striExpr("g")) <> 3 or
        length(striExpr("") & striExpr("ef") & striExpr("g")) <> 3 or
        length(         "abcd"  &          ""  &          "" ) <> 4 or
        length(striExpr("abcd") &          ""  &          "" ) <> 4 or
        length(         "abcd"  & striExpr("") &          "" ) <> 4 or
        length(striExpr("abcd") & striExpr("") &          "" ) <> 4 or
        length(         "abcd"  &          ""  & striExpr("")) <> 4 or
        length(striExpr("abcd") &          ""  & striExpr("")) <> 4 or
        length(         "abcd"  & striExpr("") & striExpr("")) <> 4 or
        length(striExpr("abcd") & striExpr("") & striExpr("")) <> 4 or
        length(         "abcd"  &          ""  &          "g" ) <> 5 or
        length(striExpr("abcd") &          ""  &          "g" ) <> 5 or
        length(         "abcd"  & striExpr("") &          "g" ) <> 5 or
        length(striExpr("abcd") & striExpr("") &          "g" ) <> 5 or
        length(         "abcd"  &          ""  & striExpr("g")) <> 5 or
        length(striExpr("abcd") &          ""  & striExpr("g")) <> 5 or
        length(         "abcd"  & striExpr("") & striExpr("g")) <> 5 or
        length(striExpr("abcd") & striExpr("") & striExpr("g")) <> 5 or
        length(         "abcd"  &          "ef"  &          "" ) <> 6 or
        length(striExpr("abcd") &          "ef"  &          "" ) <> 6 or
        length(         "abcd"  & striExpr("ef") &          "" ) <> 6 or
        length(striExpr("abcd") & striExpr("ef") &          "" ) <> 6 or
        length(         "abcd"  &          "ef"  & striExpr("")) <> 6 or
        length(striExpr("abcd") &          "ef"  & striExpr("")) <> 6 or
        length(         "abcd"  & striExpr("ef") & striExpr("")) <> 6 or
        length(striExpr("abcd") & striExpr("ef") & striExpr("")) <> 6 or
        length(         "abcd"  &          "ef"  &          "g" ) <> 7 or
        length(striExpr("abcd") &          "ef"  &          "g" ) <> 7 or
        length(         "abcd"  & striExpr("ef") &          "g" ) <> 7 or
        length(striExpr("abcd") & striExpr("ef") &          "g" ) <> 7 or
        length(         "abcd"  &          "ef"  & striExpr("g")) <> 7 or
        length(striExpr("abcd") &          "ef"  & striExpr("g")) <> 7 or
        length(         "abcd"  & striExpr("ef") & striExpr("g")) <> 7 or
        length(striExpr("abcd") & striExpr("ef") & striExpr("g")) <> 7 or

        length(         ""  &          ""  &          ""  &          "" ) <> 0 or
        length(striExpr("") &          ""  &          ""  &          "" ) <> 0 or
        length(         ""  & striExpr("") &          ""  &          "" ) <> 0 or
        length(striExpr("") & striExpr("") &          ""  &          "" ) <> 0 or
        length(         ""  &          ""  & striExpr("") &          "" ) <> 0 or
        length(striExpr("") &          ""  & striExpr("") &          "" ) <> 0 or
        length(         ""  & striExpr("") & striExpr("") &          "" ) <> 0 or
        length(striExpr("") & striExpr("") & striExpr("") &          "" ) <> 0 or
        length(         ""  &          ""  &          ""  & striExpr("")) <> 0 or
        length(striExpr("") &          ""  &          ""  & striExpr("")) <> 0 or
        length(         ""  & striExpr("") &          ""  & striExpr("")) <> 0 or
        length(striExpr("") & striExpr("") &          ""  & striExpr("")) <> 0 or
        length(         ""  &          ""  & striExpr("") & striExpr("")) <> 0 or
        length(striExpr("") &          ""  & striExpr("") & striExpr("")) <> 0 or
        length(         ""  & striExpr("") & striExpr("") & striExpr("")) <> 0 or
        length(striExpr("") & striExpr("") & striExpr("") & striExpr("")) <> 0 or
        length(         ""  &          ""  &          ""  &          "o" ) <> 1 or
        length(striExpr("") &          ""  &          ""  &          "o" ) <> 1 or
        length(         ""  & striExpr("") &          ""  &          "o" ) <> 1 or
        length(striExpr("") & striExpr("") &          ""  &          "o" ) <> 1 or
        length(         ""  &          ""  & striExpr("") &          "o" ) <> 1 or
        length(striExpr("") &          ""  & striExpr("") &          "o" ) <> 1 or
        length(         ""  & striExpr("") & striExpr("") &          "o" ) <> 1 or
        length(striExpr("") & striExpr("") & striExpr("") &          "o" ) <> 1 or
        length(         ""  &          ""  &          ""  & striExpr("o")) <> 1 or
        length(striExpr("") &          ""  &          ""  & striExpr("o")) <> 1 or
        length(         ""  & striExpr("") &          ""  & striExpr("o")) <> 1 or
        length(striExpr("") & striExpr("") &          ""  & striExpr("o")) <> 1 or
        length(         ""  &          ""  & striExpr("") & striExpr("o")) <> 1 or
        length(striExpr("") &          ""  & striExpr("") & striExpr("o")) <> 1 or
        length(         ""  & striExpr("") & striExpr("") & striExpr("o")) <> 1 or
        length(striExpr("") & striExpr("") & striExpr("") & striExpr("o")) <> 1 or
        length(         ""  &          ""  &          "mn"  &          "" ) <> 2 or
        length(striExpr("") &          ""  &          "mn"  &          "" ) <> 2 or
        length(         ""  & striExpr("") &          "mn"  &          "" ) <> 2 or
        length(striExpr("") & striExpr("") &          "mn"  &          "" ) <> 2 or
        length(         ""  &          ""  & striExpr("mn") &          "" ) <> 2 or
        length(striExpr("") &          ""  & striExpr("mn") &          "" ) <> 2 or
        length(         ""  & striExpr("") & striExpr("mn") &          "" ) <> 2 or
        length(striExpr("") & striExpr("") & striExpr("mn") &          "" ) <> 2 or
        length(         ""  &          ""  &          "mn"  & striExpr("")) <> 2 or
        length(striExpr("") &          ""  &          "mn"  & striExpr("")) <> 2 or
        length(         ""  & striExpr("") &          "mn"  & striExpr("")) <> 2 or
        length(striExpr("") & striExpr("") &          "mn"  & striExpr("")) <> 2 or
        length(         ""  &          ""  & striExpr("mn") & striExpr("")) <> 2 or
        length(striExpr("") &          ""  & striExpr("mn") & striExpr("")) <> 2 or
        length(         ""  & striExpr("") & striExpr("mn") & striExpr("")) <> 2 or
        length(striExpr("") & striExpr("") & striExpr("mn") & striExpr("")) <> 2 or
        length(         ""  &          ""  &          "mn"  &          "o" ) <> 3 or
        length(striExpr("") &          ""  &          "mn"  &          "o" ) <> 3 or
        length(         ""  & striExpr("") &          "mn"  &          "o" ) <> 3 or
        length(striExpr("") & striExpr("") &          "mn"  &          "o" ) <> 3 or
        length(         ""  &          ""  & striExpr("mn") &          "o" ) <> 3 or
        length(striExpr("") &          ""  & striExpr("mn") &          "o" ) <> 3 or
        length(         ""  & striExpr("") & striExpr("mn") &          "o" ) <> 3 or
        length(striExpr("") & striExpr("") & striExpr("mn") &          "o" ) <> 3 or
        length(         ""  &          ""  &          "mn"  & striExpr("o")) <> 3 or
        length(striExpr("") &          ""  &          "mn"  & striExpr("o")) <> 3 or
        length(         ""  & striExpr("") &          "mn"  & striExpr("o")) <> 3 or
        length(striExpr("") & striExpr("") &          "mn"  & striExpr("o")) <> 3 or
        length(         ""  &          ""  & striExpr("mn") & striExpr("o")) <> 3 or
        length(striExpr("") &          ""  & striExpr("mn") & striExpr("o")) <> 3 or
        length(         ""  & striExpr("") & striExpr("mn") & striExpr("o")) <> 3 or
        length(striExpr("") & striExpr("") & striExpr("mn") & striExpr("o")) <> 3 or
        length(         ""  &          "ijkl"  &          ""  &          "" ) <> 4 or
        length(striExpr("") &          "ijkl"  &          ""  &          "" ) <> 4 or
        length(         ""  & striExpr("ijkl") &          ""  &          "" ) <> 4 or
        length(striExpr("") & striExpr("ijkl") &          ""  &          "" ) <> 4 or
        length(         ""  &          "ijkl"  & striExpr("") &          "" ) <> 4 or
        length(striExpr("") &          "ijkl"  & striExpr("") &          "" ) <> 4 or
        length(         ""  & striExpr("ijkl") & striExpr("") &          "" ) <> 4 or
        length(striExpr("") & striExpr("ijkl") & striExpr("") &          "" ) <> 4 or
        length(         ""  &          "ijkl"  &          ""  & striExpr("")) <> 4 or
        length(striExpr("") &          "ijkl"  &          ""  & striExpr("")) <> 4 or
        length(         ""  & striExpr("ijkl") &          ""  & striExpr("")) <> 4 or
        length(striExpr("") & striExpr("ijkl") &          ""  & striExpr("")) <> 4 or
        length(         ""  &          "ijkl"  & striExpr("") & striExpr("")) <> 4 or
        length(striExpr("") &          "ijkl"  & striExpr("") & striExpr("")) <> 4 or
        length(         ""  & striExpr("ijkl") & striExpr("") & striExpr("")) <> 4 or
        length(striExpr("") & striExpr("ijkl") & striExpr("") & striExpr("")) <> 4 or
        length(         ""  &          "ijkl"  &          ""  &          "o" ) <> 5 or
        length(striExpr("") &          "ijkl"  &          ""  &          "o" ) <> 5 or
        length(         ""  & striExpr("ijkl") &          ""  &          "o" ) <> 5 or
        length(striExpr("") & striExpr("ijkl") &          ""  &          "o" ) <> 5 or
        length(         ""  &          "ijkl"  & striExpr("") &          "o" ) <> 5 or
        length(striExpr("") &          "ijkl"  & striExpr("") &          "o" ) <> 5 or
        length(         ""  & striExpr("ijkl") & striExpr("") &          "o" ) <> 5 or
        length(striExpr("") & striExpr("ijkl") & striExpr("") &          "o" ) <> 5 or
        length(         ""  &          "ijkl"  &          ""  & striExpr("o")) <> 5 or
        length(striExpr("") &          "ijkl"  &          ""  & striExpr("o")) <> 5 or
        length(         ""  & striExpr("ijkl") &          ""  & striExpr("o")) <> 5 or
        length(striExpr("") & striExpr("ijkl") &          ""  & striExpr("o")) <> 5 or
        length(         ""  &          "ijkl"  & striExpr("") & striExpr("o")) <> 5 or
        length(striExpr("") &          "ijkl"  & striExpr("") & striExpr("o")) <> 5 or
        length(         ""  & striExpr("ijkl") & striExpr("") & striExpr("o")) <> 5 or
        length(striExpr("") & striExpr("ijkl") & striExpr("") & striExpr("o")) <> 5 or
        length(         ""  &          "ijkl"  &          "mn"  &          "" ) <> 6 or
        length(striExpr("") &          "ijkl"  &          "mn"  &          "" ) <> 6 or
        length(         ""  & striExpr("ijkl") &          "mn"  &          "" ) <> 6 or
        length(striExpr("") & striExpr("ijkl") &          "mn"  &          "" ) <> 6 or
        length(         ""  &          "ijkl"  & striExpr("mn") &          "" ) <> 6 or
        length(striExpr("") &          "ijkl"  & striExpr("mn") &          "" ) <> 6 or
        length(         ""  & striExpr("ijkl") & striExpr("mn") &          "" ) <> 6 or
        length(striExpr("") & striExpr("ijkl") & striExpr("mn") &          "" ) <> 6 or
        length(         ""  &          "ijkl"  &          "mn"  & striExpr("")) <> 6 or
        length(striExpr("") &          "ijkl"  &          "mn"  & striExpr("")) <> 6 or
        length(         ""  & striExpr("ijkl") &          "mn"  & striExpr("")) <> 6 or
        length(striExpr("") & striExpr("ijkl") &          "mn"  & striExpr("")) <> 6 or
        length(         ""  &          "ijkl"  & striExpr("mn") & striExpr("")) <> 6 or
        length(striExpr("") &          "ijkl"  & striExpr("mn") & striExpr("")) <> 6 or
        length(         ""  & striExpr("ijkl") & striExpr("mn") & striExpr("")) <> 6 or
        length(striExpr("") & striExpr("ijkl") & striExpr("mn") & striExpr("")) <> 6 or
        length(         ""  &          "ijkl"  &          "mn"  &          "o" ) <> 7 or
        length(striExpr("") &          "ijkl"  &          "mn"  &          "o" ) <> 7 or
        length(         ""  & striExpr("ijkl") &          "mn"  &          "o" ) <> 7 or
        length(striExpr("") & striExpr("ijkl") &          "mn"  &          "o" ) <> 7 or
        length(         ""  &          "ijkl"  & striExpr("mn") &          "o" ) <> 7 or
        length(striExpr("") &          "ijkl"  & striExpr("mn") &          "o" ) <> 7 or
        length(         ""  & striExpr("ijkl") & striExpr("mn") &          "o" ) <> 7 or
        length(striExpr("") & striExpr("ijkl") & striExpr("mn") &          "o" ) <> 7 or
        length(         ""  &          "ijkl"  &          "mn"  & striExpr("o")) <> 7 or
        length(striExpr("") &          "ijkl"  &          "mn"  & striExpr("o")) <> 7 or
        length(         ""  & striExpr("ijkl") &          "mn"  & striExpr("o")) <> 7 or
        length(striExpr("") & striExpr("ijkl") &          "mn"  & striExpr("o")) <> 7 or
        length(         ""  &          "ijkl"  & striExpr("mn") & striExpr("o")) <> 7 or
        length(striExpr("") &          "ijkl"  & striExpr("mn") & striExpr("o")) <> 7 or
        length(         ""  & striExpr("ijkl") & striExpr("mn") & striExpr("o")) <> 7 or
        length(striExpr("") & striExpr("ijkl") & striExpr("mn") & striExpr("o")) <> 7 or
        length(         "abcdefgh"  &          ""  &          ""  &          "" ) <> 8 or
        length(striExpr("abcdefgh") &          ""  &          ""  &          "" ) <> 8 or
        length(         "abcdefgh"  & striExpr("") &          ""  &          "" ) <> 8 or
        length(striExpr("abcdefgh") & striExpr("") &          ""  &          "" ) <> 8 or
        length(         "abcdefgh"  &          ""  & striExpr("") &          "" ) <> 8 or
        length(striExpr("abcdefgh") &          ""  & striExpr("") &          "" ) <> 8 or
        length(         "abcdefgh"  & striExpr("") & striExpr("") &          "" ) <> 8 or
        length(striExpr("abcdefgh") & striExpr("") & striExpr("") &          "" ) <> 8 or
        length(         "abcdefgh"  &          ""  &          ""  & striExpr("")) <> 8 or
        length(striExpr("abcdefgh") &          ""  &          ""  & striExpr("")) <> 8 or
        length(         "abcdefgh"  & striExpr("") &          ""  & striExpr("")) <> 8 or
        length(striExpr("abcdefgh") & striExpr("") &          ""  & striExpr("")) <> 8 or
        length(         "abcdefgh"  &          ""  & striExpr("") & striExpr("")) <> 8 or
        length(striExpr("abcdefgh") &          ""  & striExpr("") & striExpr("")) <> 8 or
        length(         "abcdefgh"  & striExpr("") & striExpr("") & striExpr("")) <> 8 or
        length(striExpr("abcdefgh") & striExpr("") & striExpr("") & striExpr("")) <> 8 or
        length(         "abcdefgh"  &          ""  &          ""  &          "o" ) <> 9 or
        length(striExpr("abcdefgh") &          ""  &          ""  &          "o" ) <> 9 or
        length(         "abcdefgh"  & striExpr("") &          ""  &          "o" ) <> 9 or
        length(striExpr("abcdefgh") & striExpr("") &          ""  &          "o" ) <> 9 or
        length(         "abcdefgh"  &          ""  & striExpr("") &          "o" ) <> 9 or
        length(striExpr("abcdefgh") &          ""  & striExpr("") &          "o" ) <> 9 or
        length(         "abcdefgh"  & striExpr("") & striExpr("") &          "o" ) <> 9 or
        length(striExpr("abcdefgh") & striExpr("") & striExpr("") &          "o" ) <> 9 or
        length(         "abcdefgh"  &          ""  &          ""  & striExpr("o")) <> 9 or
        length(striExpr("abcdefgh") &          ""  &          ""  & striExpr("o")) <> 9 or
        length(         "abcdefgh"  & striExpr("") &          ""  & striExpr("o")) <> 9 or
        length(striExpr("abcdefgh") & striExpr("") &          ""  & striExpr("o")) <> 9 or
        length(         "abcdefgh"  &          ""  & striExpr("") & striExpr("o")) <> 9 or
        length(striExpr("abcdefgh") &          ""  & striExpr("") & striExpr("o")) <> 9 or
        length(         "abcdefgh"  & striExpr("") & striExpr("") & striExpr("o")) <> 9 or
        length(striExpr("abcdefgh") & striExpr("") & striExpr("") & striExpr("o")) <> 9 or
        length(         "abcdefgh"  &          ""  &          "mn"  &          "" ) <> 10 or
        length(striExpr("abcdefgh") &          ""  &          "mn"  &          "" ) <> 10 or
        length(         "abcdefgh"  & striExpr("") &          "mn"  &          "" ) <> 10 or
        length(striExpr("abcdefgh") & striExpr("") &          "mn"  &          "" ) <> 10 or
        length(         "abcdefgh"  &          ""  & striExpr("mn") &          "" ) <> 10 or
        length(striExpr("abcdefgh") &          ""  & striExpr("mn") &          "" ) <> 10 or
        length(         "abcdefgh"  & striExpr("") & striExpr("mn") &          "" ) <> 10 or
        length(striExpr("abcdefgh") & striExpr("") & striExpr("mn") &          "" ) <> 10 or
        length(         "abcdefgh"  &          ""  &          "mn"  & striExpr("")) <> 10 or
        length(striExpr("abcdefgh") &          ""  &          "mn"  & striExpr("")) <> 10 or
        length(         "abcdefgh"  & striExpr("") &          "mn"  & striExpr("")) <> 10 or
        length(striExpr("abcdefgh") & striExpr("") &          "mn"  & striExpr("")) <> 10 or
        length(         "abcdefgh"  &          ""  & striExpr("mn") & striExpr("")) <> 10 or
        length(striExpr("abcdefgh") &          ""  & striExpr("mn") & striExpr("")) <> 10 or
        length(         "abcdefgh"  & striExpr("") & striExpr("mn") & striExpr("")) <> 10 or
        length(striExpr("abcdefgh") & striExpr("") & striExpr("mn") & striExpr("")) <> 10 or
        length(         "abcdefgh"  &          ""  &          "mn"  &          "o" ) <> 11 or
        length(striExpr("abcdefgh") &          ""  &          "mn"  &          "o" ) <> 11 or
        length(         "abcdefgh"  & striExpr("") &          "mn"  &          "o" ) <> 11 or
        length(striExpr("abcdefgh") & striExpr("") &          "mn"  &          "o" ) <> 11 or
        length(         "abcdefgh"  &          ""  & striExpr("mn") &          "o" ) <> 11 or
        length(striExpr("abcdefgh") &          ""  & striExpr("mn") &          "o" ) <> 11 or
        length(         "abcdefgh"  & striExpr("") & striExpr("mn") &          "o" ) <> 11 or
        length(striExpr("abcdefgh") & striExpr("") & striExpr("mn") &          "o" ) <> 11 or
        length(         "abcdefgh"  &          ""  &          "mn"  & striExpr("o")) <> 11 or
        length(striExpr("abcdefgh") &          ""  &          "mn"  & striExpr("o")) <> 11 or
        length(         "abcdefgh"  & striExpr("") &          "mn"  & striExpr("o")) <> 11 or
        length(striExpr("abcdefgh") & striExpr("") &          "mn"  & striExpr("o")) <> 11 or
        length(         "abcdefgh"  &          ""  & striExpr("mn") & striExpr("o")) <> 11 or
        length(striExpr("abcdefgh") &          ""  & striExpr("mn") & striExpr("o")) <> 11 or
        length(         "abcdefgh"  & striExpr("") & striExpr("mn") & striExpr("o")) <> 11 or
        length(striExpr("abcdefgh") & striExpr("") & striExpr("mn") & striExpr("o")) <> 11 or
        length(         "abcdefgh"  &          "ijkl"  &          ""  &          "" ) <> 12 or
        length(striExpr("abcdefgh") &          "ijkl"  &          ""  &          "" ) <> 12 or
        length(         "abcdefgh"  & striExpr("ijkl") &          ""  &          "" ) <> 12 or
        length(striExpr("abcdefgh") & striExpr("ijkl") &          ""  &          "" ) <> 12 or
        length(         "abcdefgh"  &          "ijkl"  & striExpr("") &          "" ) <> 12 or
        length(striExpr("abcdefgh") &          "ijkl"  & striExpr("") &          "" ) <> 12 or
        length(         "abcdefgh"  & striExpr("ijkl") & striExpr("") &          "" ) <> 12 or
        length(striExpr("abcdefgh") & striExpr("ijkl") & striExpr("") &          "" ) <> 12 or
        length(         "abcdefgh"  &          "ijkl"  &          ""  & striExpr("")) <> 12 or
        length(striExpr("abcdefgh") &          "ijkl"  &          ""  & striExpr("")) <> 12 or
        length(         "abcdefgh"  & striExpr("ijkl") &          ""  & striExpr("")) <> 12 or
        length(striExpr("abcdefgh") & striExpr("ijkl") &          ""  & striExpr("")) <> 12 or
        length(         "abcdefgh"  &          "ijkl"  & striExpr("") & striExpr("")) <> 12 or
        length(striExpr("abcdefgh") &          "ijkl"  & striExpr("") & striExpr("")) <> 12 or
        length(         "abcdefgh"  & striExpr("ijkl") & striExpr("") & striExpr("")) <> 12 or
        length(striExpr("abcdefgh") & striExpr("ijkl") & striExpr("") & striExpr("")) <> 12 or
        length(         "abcdefgh"  &          "ijkl"  &          ""  &          "o" ) <> 13 or
        length(striExpr("abcdefgh") &          "ijkl"  &          ""  &          "o" ) <> 13 or
        length(         "abcdefgh"  & striExpr("ijkl") &          ""  &          "o" ) <> 13 or
        length(striExpr("abcdefgh") & striExpr("ijkl") &          ""  &          "o" ) <> 13 or
        length(         "abcdefgh"  &          "ijkl"  & striExpr("") &          "o" ) <> 13 or
        length(striExpr("abcdefgh") &          "ijkl"  & striExpr("") &          "o" ) <> 13 or
        length(         "abcdefgh"  & striExpr("ijkl") & striExpr("") &          "o" ) <> 13 or
        length(striExpr("abcdefgh") & striExpr("ijkl") & striExpr("") &          "o" ) <> 13 or
        length(         "abcdefgh"  &          "ijkl"  &          ""  & striExpr("o")) <> 13 or
        length(striExpr("abcdefgh") &          "ijkl"  &          ""  & striExpr("o")) <> 13 or
        length(         "abcdefgh"  & striExpr("ijkl") &          ""  & striExpr("o")) <> 13 or
        length(striExpr("abcdefgh") & striExpr("ijkl") &          ""  & striExpr("o")) <> 13 or
        length(         "abcdefgh"  &          "ijkl"  & striExpr("") & striExpr("o")) <> 13 or
        length(striExpr("abcdefgh") &          "ijkl"  & striExpr("") & striExpr("o")) <> 13 or
        length(         "abcdefgh"  & striExpr("ijkl") & striExpr("") & striExpr("o")) <> 13 or
        length(striExpr("abcdefgh") & striExpr("ijkl") & striExpr("") & striExpr("o")) <> 13 or
        length(         "abcdefgh"  &          "ijkl"  &          "mn"  &          "" ) <> 14 or
        length(striExpr("abcdefgh") &          "ijkl"  &          "mn"  &          "" ) <> 14 or
        length(         "abcdefgh"  & striExpr("ijkl") &          "mn"  &          "" ) <> 14 or
        length(striExpr("abcdefgh") & striExpr("ijkl") &          "mn"  &          "" ) <> 14 or
        length(         "abcdefgh"  &          "ijkl"  & striExpr("mn") &          "" ) <> 14 or
        length(striExpr("abcdefgh") &          "ijkl"  & striExpr("mn") &          "" ) <> 14 or
        length(         "abcdefgh"  & striExpr("ijkl") & striExpr("mn") &          "" ) <> 14 or
        length(striExpr("abcdefgh") & striExpr("ijkl") & striExpr("mn") &          "" ) <> 14 or
        length(         "abcdefgh"  &          "ijkl"  &          "mn"  & striExpr("")) <> 14 or
        length(striExpr("abcdefgh") &          "ijkl"  &          "mn"  & striExpr("")) <> 14 or
        length(         "abcdefgh"  & striExpr("ijkl") &          "mn"  & striExpr("")) <> 14 or
        length(striExpr("abcdefgh") & striExpr("ijkl") &          "mn"  & striExpr("")) <> 14 or
        length(         "abcdefgh"  &          "ijkl"  & striExpr("mn") & striExpr("")) <> 14 or
        length(striExpr("abcdefgh") &          "ijkl"  & striExpr("mn") & striExpr("")) <> 14 or
        length(         "abcdefgh"  & striExpr("ijkl") & striExpr("mn") & striExpr("")) <> 14 or
        length(striExpr("abcdefgh") & striExpr("ijkl") & striExpr("mn") & striExpr("")) <> 14 or
        length(         "abcdefgh"  &          "ijkl"  &          "mn"  &          "o" ) <> 15 or
        length(striExpr("abcdefgh") &          "ijkl"  &          "mn"  &          "o" ) <> 15 or
        length(         "abcdefgh"  & striExpr("ijkl") &          "mn"  &          "o" ) <> 15 or
        length(striExpr("abcdefgh") & striExpr("ijkl") &          "mn"  &          "o" ) <> 15 or
        length(         "abcdefgh"  &          "ijkl"  & striExpr("mn") &          "o" ) <> 15 or
        length(striExpr("abcdefgh") &          "ijkl"  & striExpr("mn") &          "o" ) <> 15 or
        length(         "abcdefgh"  & striExpr("ijkl") & striExpr("mn") &          "o" ) <> 15 or
        length(striExpr("abcdefgh") & striExpr("ijkl") & striExpr("mn") &          "o" ) <> 15 or
        length(         "abcdefgh"  &          "ijkl"  &          "mn"  & striExpr("o")) <> 15 or
        length(striExpr("abcdefgh") &          "ijkl"  &          "mn"  & striExpr("o")) <> 15 or
        length(         "abcdefgh"  & striExpr("ijkl") &          "mn"  & striExpr("o")) <> 15 or
        length(striExpr("abcdefgh") & striExpr("ijkl") &          "mn"  & striExpr("o")) <> 15 or
        length(         "abcdefgh"  &          "ijkl"  & striExpr("mn") & striExpr("o")) <> 15 or
        length(striExpr("abcdefgh") &          "ijkl"  & striExpr("mn") & striExpr("o")) <> 15 or
        length(         "abcdefgh"  & striExpr("ijkl") & striExpr("mn") & striExpr("o")) <> 15 or
        length(striExpr("abcdefgh") & striExpr("ijkl") & striExpr("mn") & striExpr("o")) <> 15 or

        length(         "ab"  &          "cd"  &          "ef"  &          "gh"  &          "ij" ) <> 10 or
        length(striExpr("ab") &          "cd"  &          "ef"  &          "gh"  &          "ij" ) <> 10 or
        length(         "ab"  & striExpr("cd") &          "ef"  &          "gh"  &          "ij" ) <> 10 or
        length(striExpr("ab") & striExpr("cd") &          "ef"  &          "gh"  &          "ij" ) <> 10 or
        length(         "ab"  &          "cd"  & striExpr("ef") &          "gh"  &          "ij" ) <> 10 or
        length(striExpr("ab") &          "cd"  & striExpr("ef") &          "gh"  &          "ij" ) <> 10 or
        length(         "ab"  & striExpr("cd") & striExpr("ef") &          "gh"  &          "ij" ) <> 10 or
        length(striExpr("ab") & striExpr("cd") & striExpr("ef") &          "gh"  &          "ij" ) <> 10 or
        length(         "ab"  &          "cd"  &          "ef"  & striExpr("gh") &          "ij" ) <> 10 or
        length(striExpr("ab") &          "cd"  &          "ef"  & striExpr("gh") &          "ij" ) <> 10 or
        length(         "ab"  & striExpr("cd") &          "ef"  & striExpr("gh") &          "ij" ) <> 10 or
        length(striExpr("ab") & striExpr("cd") &          "ef"  & striExpr("gh") &          "ij" ) <> 10 or
        length(         "ab"  &          "cd"  & striExpr("ef") & striExpr("gh") &          "ij" ) <> 10 or
        length(striExpr("ab") &          "cd"  & striExpr("ef") & striExpr("gh") &          "ij" ) <> 10 or
        length(         "ab"  & striExpr("cd") & striExpr("ef") & striExpr("gh") &          "ij" ) <> 10 or
        length(striExpr("ab") & striExpr("cd") & striExpr("ef") & striExpr("gh") &          "ij" ) <> 10 or
        length(         "ab"  &          "cd"  &          "ef"  &          "gh"  & striExpr("ij")) <> 10 or
        length(striExpr("ab") &          "cd"  &          "ef"  &          "gh"  & striExpr("ij")) <> 10 or
        length(         "ab"  & striExpr("cd") &          "ef"  &          "gh"  & striExpr("ij")) <> 10 or
        length(striExpr("ab") & striExpr("cd") &          "ef"  &          "gh"  & striExpr("ij")) <> 10 or
        length(         "ab"  &          "cd"  & striExpr("ef") &          "gh"  & striExpr("ij")) <> 10 or
        length(striExpr("ab") &          "cd"  & striExpr("ef") &          "gh"  & striExpr("ij")) <> 10 or
        length(         "ab"  & striExpr("cd") & striExpr("ef") &          "gh"  & striExpr("ij")) <> 10 or
        length(striExpr("ab") & striExpr("cd") & striExpr("ef") &          "gh"  & striExpr("ij")) <> 10 or
        length(         "ab"  &          "cd"  &          "ef"  & striExpr("gh") & striExpr("ij")) <> 10 or
        length(striExpr("ab") &          "cd"  &          "ef"  & striExpr("gh") & striExpr("ij")) <> 10 or
        length(         "ab"  & striExpr("cd") &          "ef"  & striExpr("gh") & striExpr("ij")) <> 10 or
        length(striExpr("ab") & striExpr("cd") &          "ef"  & striExpr("gh") & striExpr("ij")) <> 10 or
        length(         "ab"  &          "cd"  & striExpr("ef") & striExpr("gh") & striExpr("ij")) <> 10 or
        length(striExpr("ab") &          "cd"  & striExpr("ef") & striExpr("gh") & striExpr("ij")) <> 10 or
        length(         "ab"  & striExpr("cd") & striExpr("ef") & striExpr("gh") & striExpr("ij")) <> 10 or
        length(striExpr("ab") & striExpr("cd") & striExpr("ef") & striExpr("gh") & striExpr("ij")) <> 10 then
      writeln(" ***** length(STRING) does not work correct.");
      okay := FALSE;
    end if;
    if okay then
      writeln("String length works correct.");
    end if;
  end func;


const proc: check_string_index is func
  local
    var boolean: okay is TRUE;
  begin
    if  "1234567890" [  1 ] <> '1' or
        "1234567890" [  2 ] <> '2' or
        "1234567890" [  3 ] <> '3' or
        "1234567890" [  4 ] <> '4' or
        "1234567890" [  5 ] <> '5' or
        "1234567890" [  6 ] <> '6' or
        "1234567890" [  7 ] <> '7' or
        "1234567890" [  8 ] <> '8' or
        "1234567890" [  9 ] <> '9' or
        "1234567890" [ 10 ] <> '0' then
      writeln(" ***** STRING [ INDEX ] does not work correct.");
      okay := FALSE;
    end if;
    if  striExpr("1234567890") [  1 ] <> '1' or
        striExpr("1234567890") [  2 ] <> '2' or
        striExpr("1234567890") [  3 ] <> '3' or
        striExpr("1234567890") [  4 ] <> '4' or
        striExpr("1234567890") [  5 ] <> '5' or
        striExpr("1234567890") [  6 ] <> '6' or
        striExpr("1234567890") [  7 ] <> '7' or
        striExpr("1234567890") [  8 ] <> '8' or
        striExpr("1234567890") [  9 ] <> '9' or
        striExpr("1234567890") [ 10 ] <> '0' then
      writeln(" ***** STRING [ INDEX ] does not work correct.");
      okay := FALSE;
    end if;
    if  "1234567890" [intExpr(  1 )] <> '1' or
        "1234567890" [intExpr(  2 )] <> '2' or
        "1234567890" [intExpr(  3 )] <> '3' or
        "1234567890" [intExpr(  4 )] <> '4' or
        "1234567890" [intExpr(  5 )] <> '5' or
        "1234567890" [intExpr(  6 )] <> '6' or
        "1234567890" [intExpr(  7 )] <> '7' or
        "1234567890" [intExpr(  8 )] <> '8' or
        "1234567890" [intExpr(  9 )] <> '9' or
        "1234567890" [intExpr( 10 )] <> '0' then
      writeln(" ***** STRING [ INDEX ] does not work correct.");
      okay := FALSE;
    end if;
    if  striExpr("1234567890") [intExpr(  1 )] <> '1' or
        striExpr("1234567890") [intExpr(  2 )] <> '2' or
        striExpr("1234567890") [intExpr(  3 )] <> '3' or
        striExpr("1234567890") [intExpr(  4 )] <> '4' or
        striExpr("1234567890") [intExpr(  5 )] <> '5' or
        striExpr("1234567890") [intExpr(  6 )] <> '6' or
        striExpr("1234567890") [intExpr(  7 )] <> '7' or
        striExpr("1234567890") [intExpr(  8 )] <> '8' or
        striExpr("1234567890") [intExpr(  9 )] <> '9' or
        striExpr("1234567890") [intExpr( 10 )] <> '0' then
      writeln(" ***** STRING [ INDEX ] does not work correct.");
      okay := FALSE;
    end if;
    if okay then
      writeln("String indices work correct.");
    end if;
  end func;


const func string: headOfEmptyString (in integer: stop) is
  return ""[ .. stop];


const func string: headOfString1 (in integer: stop) is
  return "1"[ .. stop];


const func string: headFunction (in integer: stop) is
  return "1234567890"[ .. stop];


const func string: headFunction (in string: stri) is
  return stri[ .. 1];


const func string: headFunction (in string: stri, in integer: stop) is
  return stri[ .. stop];


const proc: check_string_head is func
  local
    var boolean: okay is TRUE;
    var boolean: ok is TRUE;
    var string: stri is "";
  begin
    if  "" [ .. -5 ] <> "" or
        "" [ ..  0 ] <> "" or
        "" [ ..  1 ] <> "" or
        "" [ ..  2 ] <> "" or
        "" [ ..  5 ] <> "" or
        "" [ ..  9 ] <> "" or
        "" [ .. 10 ] <> "" or
        "" [ .. 11 ] <> "" or
        "" [ .. 15 ] <> "" or
        "1" [ .. -5 ] <> "" or
        "1" [ ..  0 ] <> "" or
        "1" [ ..  1 ] <> "1" or
        "1" [ ..  2 ] <> "1" or
        "1" [ ..  5 ] <> "1" or
        "1" [ ..  9 ] <> "1" or
        "1" [ .. 10 ] <> "1" or
        "1" [ .. 11 ] <> "1" or
        "1" [ .. 15 ] <> "1" or
        "1234567890" [ .. -5 ] <> "" or
        "1234567890" [ ..  0 ] <> "" or
        "1234567890" [ ..  1 ] <> "1" or
        "1234567890" [ ..  2 ] <> "12" or
        "1234567890" [ ..  5 ] <> "12345" or
        "1234567890" [ ..  9 ] <> "123456789" or
        "1234567890" [ .. 10 ] <> "1234567890" or
        "1234567890" [ .. 11 ] <> "1234567890" or
        "1234567890" [ .. 15 ] <> "1234567890" or
        "" [ .. intExpr(-5) ] <> "" or
        "" [ .. intExpr( 0) ] <> "" or
        "" [ .. intExpr( 1) ] <> "" or
        "" [ .. intExpr( 2) ] <> "" or
        "" [ .. intExpr( 5) ] <> "" or
        "" [ .. intExpr( 9) ] <> "" or
        "" [ .. intExpr(10) ] <> "" or
        "" [ .. intExpr(11) ] <> "" or
        "" [ .. intExpr(15) ] <> "" or
        "1" [ .. intExpr(-5) ] <> "" or
        "1" [ .. intExpr( 0) ] <> "" or
        "1" [ .. intExpr( 1) ] <> "1" or
        "1" [ .. intExpr( 2) ] <> "1" or
        "1" [ .. intExpr( 5) ] <> "1" or
        "1" [ .. intExpr( 9) ] <> "1" or
        "1" [ .. intExpr(10) ] <> "1" or
        "1" [ .. intExpr(11) ] <> "1" or
        "1" [ .. intExpr(15) ] <> "1" or
        "1234567890" [ .. intExpr(-5) ] <> "" or
        "1234567890" [ .. intExpr( 0) ] <> "" or
        "1234567890" [ .. intExpr( 1) ] <> "1" or
        "1234567890" [ .. intExpr( 2) ] <> "12" or
        "1234567890" [ .. intExpr( 5) ] <> "12345" or
        "1234567890" [ .. intExpr( 9) ] <> "123456789" or
        "1234567890" [ .. intExpr(10) ] <> "1234567890" or
        "1234567890" [ .. intExpr(11) ] <> "1234567890" or
        "1234567890" [ .. intExpr(15) ] <> "1234567890" or
        striExpr("") [ .. -5 ] <> "" or
        striExpr("") [ ..  0 ] <> "" or
        striExpr("") [ ..  1 ] <> "" or
        striExpr("") [ ..  2 ] <> "" or
        striExpr("") [ ..  5 ] <> "" or
        striExpr("") [ ..  9 ] <> "" or
        striExpr("") [ .. 10 ] <> "" or
        striExpr("") [ .. 11 ] <> "" or
        striExpr("") [ .. 15 ] <> "" or
        striExpr("1") [ .. -5 ] <> "" or
        striExpr("1") [ ..  0 ] <> "" or
        striExpr("1") [ ..  1 ] <> "1" or
        striExpr("1") [ ..  2 ] <> "1" or
        striExpr("1") [ ..  5 ] <> "1" or
        striExpr("1") [ ..  9 ] <> "1" or
        striExpr("1") [ .. 10 ] <> "1" or
        striExpr("1") [ .. 11 ] <> "1" or
        striExpr("1") [ .. 15 ] <> "1" or
        striExpr("1234567890") [ .. -5 ] <> "" or
        striExpr("1234567890") [ ..  0 ] <> "" or
        striExpr("1234567890") [ ..  1 ] <> "1" or
        striExpr("1234567890") [ ..  2 ] <> "12" or
        striExpr("1234567890") [ ..  5 ] <> "12345" or
        striExpr("1234567890") [ ..  9 ] <> "123456789" or
        striExpr("1234567890") [ .. 10 ] <> "1234567890" or
        striExpr("1234567890") [ .. 11 ] <> "1234567890" or
        striExpr("1234567890") [ .. 15 ] <> "1234567890" or
        striExpr("") [ .. intExpr(-5) ] <> "" or
        striExpr("") [ .. intExpr( 0) ] <> "" or
        striExpr("") [ .. intExpr( 1) ] <> "" or
        striExpr("") [ .. intExpr( 2) ] <> "" or
        striExpr("") [ .. intExpr( 5) ] <> "" or
        striExpr("") [ .. intExpr( 9) ] <> "" or
        striExpr("") [ .. intExpr(10) ] <> "" or
        striExpr("") [ .. intExpr(11) ] <> "" or
        striExpr("") [ .. intExpr(15) ] <> "" or
        striExpr("1") [ .. intExpr(-5) ] <> "" or
        striExpr("1") [ .. intExpr( 0) ] <> "" or
        striExpr("1") [ .. intExpr( 1) ] <> "1" or
        striExpr("1") [ .. intExpr( 2) ] <> "1" or
        striExpr("1") [ .. intExpr( 5) ] <> "1" or
        striExpr("1") [ .. intExpr( 9) ] <> "1" or
        striExpr("1") [ .. intExpr(10) ] <> "1" or
        striExpr("1") [ .. intExpr(11) ] <> "1" or
        striExpr("1") [ .. intExpr(15) ] <> "1" or
        striExpr("1234567890") [ .. intExpr(-5) ] <> "" or
        striExpr("1234567890") [ .. intExpr( 0) ] <> "" or
        striExpr("1234567890") [ .. intExpr( 1) ] <> "1" or
        striExpr("1234567890") [ .. intExpr( 2) ] <> "12" or
        striExpr("1234567890") [ .. intExpr( 5) ] <> "12345" or
        striExpr("1234567890") [ .. intExpr( 9) ] <> "123456789" or
        striExpr("1234567890") [ .. intExpr(10) ] <> "1234567890" or
        striExpr("1234567890") [ .. intExpr(11) ] <> "1234567890" or
        striExpr("1234567890") [ .. intExpr(15) ] <> "1234567890" then
      writeln(" ***** STRING [ .. STOP ] does not work correct.");
      okay := FALSE;
    end if;

    stri := "" [ .. -5 ]; ok := ok and stri = "";
    stri := "" [ ..  0 ]; ok := ok and stri = "";
    stri := "" [ ..  1 ]; ok := ok and stri = "";
    stri := "" [ ..  2 ]; ok := ok and stri = "";
    stri := "" [ ..  5 ]; ok := ok and stri = "";
    stri := "" [ ..  9 ]; ok := ok and stri = "";
    stri := "" [ .. 10 ]; ok := ok and stri = "";
    stri := "" [ .. 11 ]; ok := ok and stri = "";
    stri := "" [ .. 15 ]; ok := ok and stri = "";
    stri := "1" [ .. -5 ]; ok := ok and stri = "";
    stri := "1" [ ..  0 ]; ok := ok and stri = "";
    stri := "1" [ ..  1 ]; ok := ok and stri = "1";
    stri := "1" [ ..  2 ]; ok := ok and stri = "1";
    stri := "1" [ ..  5 ]; ok := ok and stri = "1";
    stri := "1" [ ..  9 ]; ok := ok and stri = "1";
    stri := "1" [ .. 10 ]; ok := ok and stri = "1";
    stri := "1" [ .. 11 ]; ok := ok and stri = "1";
    stri := "1" [ .. 15 ]; ok := ok and stri = "1";
    stri := "1234567890" [ .. -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ ..  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ ..  1 ]; ok := ok and stri = "1";
    stri := "1234567890" [ ..  2 ]; ok := ok and stri = "12";
    stri := "1234567890" [ ..  5 ]; ok := ok and stri = "12345";
    stri := "1234567890" [ ..  9 ]; ok := ok and stri = "123456789";
    stri := "1234567890" [ .. 10 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ .. 11 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ .. 15 ]; ok := ok and stri = "1234567890";
    stri := "" [ .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "" [ .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [ .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [ .. intExpr( 2) ]; ok := ok and stri = "";
    stri := "" [ .. intExpr( 5) ]; ok := ok and stri = "";
    stri := "" [ .. intExpr( 9) ]; ok := ok and stri = "";
    stri := "" [ .. intExpr(10) ]; ok := ok and stri = "";
    stri := "" [ .. intExpr(11) ]; ok := ok and stri = "";
    stri := "" [ .. intExpr(15) ]; ok := ok and stri = "";
    stri := "1" [ .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [ .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [ .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := "1" [ .. intExpr( 2) ]; ok := ok and stri = "1";
    stri := "1" [ .. intExpr( 5) ]; ok := ok and stri = "1";
    stri := "1" [ .. intExpr( 9) ]; ok := ok and stri = "1";
    stri := "1" [ .. intExpr(10) ]; ok := ok and stri = "1";
    stri := "1" [ .. intExpr(11) ]; ok := ok and stri = "1";
    stri := "1" [ .. intExpr(15) ]; ok := ok and stri = "1";
    stri := "1234567890" [ .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := "1234567890" [ .. intExpr( 2) ]; ok := ok and stri = "12";
    stri := "1234567890" [ .. intExpr( 5) ]; ok := ok and stri = "12345";
    stri := "1234567890" [ .. intExpr( 9) ]; ok := ok and stri = "123456789";
    stri := "1234567890" [ .. intExpr(10) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ .. intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ .. intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := striExpr("") [ .. -5 ]; ok := ok and stri = "";
    stri := striExpr("") [ ..  0 ]; ok := ok and stri = "";
    stri := striExpr("") [ ..  1 ]; ok := ok and stri = "";
    stri := striExpr("") [ ..  2 ]; ok := ok and stri = "";
    stri := striExpr("") [ ..  5 ]; ok := ok and stri = "";
    stri := striExpr("") [ ..  9 ]; ok := ok and stri = "";
    stri := striExpr("") [ .. 10 ]; ok := ok and stri = "";
    stri := striExpr("") [ .. 11 ]; ok := ok and stri = "";
    stri := striExpr("") [ .. 15 ]; ok := ok and stri = "";
    stri := striExpr("1") [ .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [ ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [ ..  1 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ ..  2 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ ..  5 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ ..  9 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ .. 10 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ .. 11 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ .. 15 ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ ..  1 ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ ..  2 ]; ok := ok and stri = "12";
    stri := striExpr("1234567890") [ ..  5 ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [ ..  9 ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [ .. 10 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ .. 11 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ .. 15 ]; ok := ok and stri = "1234567890";
    stri := striExpr("") [ .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("") [ .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [ .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [ .. intExpr( 2) ]; ok := ok and stri = "";
    stri := striExpr("") [ .. intExpr( 5) ]; ok := ok and stri = "";
    stri := striExpr("") [ .. intExpr( 9) ]; ok := ok and stri = "";
    stri := striExpr("") [ .. intExpr(10) ]; ok := ok and stri = "";
    stri := striExpr("") [ .. intExpr(11) ]; ok := ok and stri = "";
    stri := striExpr("") [ .. intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("1") [ .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [ .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [ .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ .. intExpr( 2) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ .. intExpr( 5) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ .. intExpr( 9) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ .. intExpr(10) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ .. intExpr(11) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ .. intExpr(15) ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ .. intExpr( 2) ]; ok := ok and stri = "12";
    stri := striExpr("1234567890") [ .. intExpr( 5) ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [ .. intExpr( 9) ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [ .. intExpr(10) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ .. intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ .. intExpr(15) ]; ok := ok and stri = "1234567890";
    if not ok then
      writeln(" ***** stri := STRING [ .. STOP ] does not work correct.");
      okay := FALSE;
    end if;

    if  headOfEmptyString(-5) <> "" or
        headOfEmptyString( 0) <> "" or
        headOfEmptyString( 1) <> "" or
        headOfEmptyString( 2) <> "" or
        headOfEmptyString( 5) <> "" or
        headOfEmptyString( 9) <> "" or
        headOfEmptyString(10) <> "" or
        headOfEmptyString(11) <> "" or
        headOfEmptyString(15) <> "" or
        headOfEmptyString(intExpr(-5)) <> "" or
        headOfEmptyString(intExpr( 0)) <> "" or
        headOfEmptyString(intExpr( 1)) <> "" or
        headOfEmptyString(intExpr( 2)) <> "" or
        headOfEmptyString(intExpr( 5)) <> "" or
        headOfEmptyString(intExpr( 9)) <> "" or
        headOfEmptyString(intExpr(10)) <> "" or
        headOfEmptyString(intExpr(11)) <> "" or
        headOfEmptyString(intExpr(15)) <> "" then
      writeln(" ***** STRING [ .. STOP ] via a function does not work correct. (1)");
      okay := FALSE;
    end if;

    if  headOfString1(-5) <> "" or
        headOfString1( 0) <> "" or
        headOfString1( 1) <> "1" or
        headOfString1( 2) <> "1" or
        headOfString1( 5) <> "1" or
        headOfString1( 9) <> "1" or
        headOfString1(10) <> "1" or
        headOfString1(11) <> "1" or
        headOfString1(15) <> "1" or
        headOfString1(intExpr(-5)) <> "" or
        headOfString1(intExpr( 0)) <> "" or
        headOfString1(intExpr( 1)) <> "1" or
        headOfString1(intExpr( 2)) <> "1" or
        headOfString1(intExpr( 5)) <> "1" or
        headOfString1(intExpr( 9)) <> "1" or
        headOfString1(intExpr(10)) <> "1" or
        headOfString1(intExpr(11)) <> "1" or
        headOfString1(intExpr(15)) <> "1" then
      writeln(" ***** STRING [ .. STOP ] via a function does not work correct. (2)");
      okay := FALSE;
    end if;

    if  headFunction(-5) <> "" or
        headFunction( 0) <> "" or
        headFunction( 1) <> "1" or
        headFunction( 2) <> "12" or
        headFunction( 5) <> "12345" or
        headFunction( 9) <> "123456789" or
        headFunction(10) <> "1234567890" or
        headFunction(11) <> "1234567890" or
        headFunction(15) <> "1234567890" or
        headFunction(intExpr(-5)) <> "" or
        headFunction(intExpr( 0)) <> "" or
        headFunction(intExpr( 1)) <> "1" or
        headFunction(intExpr( 2)) <> "12" or
        headFunction(intExpr( 5)) <> "12345" or
        headFunction(intExpr( 9)) <> "123456789" or
        headFunction(intExpr(10)) <> "1234567890" or
        headFunction(intExpr(11)) <> "1234567890" or
        headFunction(intExpr(15)) <> "1234567890" then
      writeln(" ***** STRING [ .. STOP ] via a function does not work correct. (3)");
      okay := FALSE;
    end if;

    if  headFunction(          "") <> "" or
        headFunction(         "1") <> "1" or
        headFunction("1234567890") <> "1" or
        headFunction(striExpr(          "")) <> "" or
        headFunction(striExpr(         "1")) <> "1" or
        headFunction(striExpr("1234567890")) <> "1" then
      writeln(" ***** STRING [ .. STOP ] via a function does not work correct. (4)");
      okay := FALSE;
    end if;

    if  headFunction("", -5) <> "" or
        headFunction("",  0) <> "" or
        headFunction("",  1) <> "" or
        headFunction("",  2) <> "" or
        headFunction("",  5) <> "" or
        headFunction("",  9) <> "" or
        headFunction("", 10) <> "" or
        headFunction("", 11) <> "" or
        headFunction("", 15) <> "" or
        headFunction("1", -5) <> "" or
        headFunction("1",  0) <> "" or
        headFunction("1",  1) <> "1" or
        headFunction("1",  2) <> "1" or
        headFunction("1",  5) <> "1" or
        headFunction("1",  9) <> "1" or
        headFunction("1", 10) <> "1" or
        headFunction("1", 11) <> "1" or
        headFunction("1", 15) <> "1" or
        headFunction("1234567890", -5) <> "" or
        headFunction("1234567890",  0) <> "" or
        headFunction("1234567890",  1) <> "1" or
        headFunction("1234567890",  2) <> "12" or
        headFunction("1234567890",  5) <> "12345" or
        headFunction("1234567890",  9) <> "123456789" or
        headFunction("1234567890", 10) <> "1234567890" or
        headFunction("1234567890", 11) <> "1234567890" or
        headFunction("1234567890", 15) <> "1234567890" or
        headFunction("", intExpr(-5)) <> "" or
        headFunction("", intExpr( 0)) <> "" or
        headFunction("", intExpr( 1)) <> "" or
        headFunction("", intExpr( 2)) <> "" or
        headFunction("", intExpr( 5)) <> "" or
        headFunction("", intExpr( 9)) <> "" or
        headFunction("", intExpr(10)) <> "" or
        headFunction("", intExpr(11)) <> "" or
        headFunction("", intExpr(15)) <> "" or
        headFunction("1", intExpr(-5)) <> "" or
        headFunction("1", intExpr( 0)) <> "" or
        headFunction("1", intExpr( 1)) <> "1" or
        headFunction("1", intExpr( 2)) <> "1" or
        headFunction("1", intExpr( 5)) <> "1" or
        headFunction("1", intExpr( 9)) <> "1" or
        headFunction("1", intExpr(10)) <> "1" or
        headFunction("1", intExpr(11)) <> "1" or
        headFunction("1", intExpr(15)) <> "1" or
        headFunction("1234567890", intExpr(-5)) <> "" or
        headFunction("1234567890", intExpr( 0)) <> "" or
        headFunction("1234567890", intExpr( 1)) <> "1" or
        headFunction("1234567890", intExpr( 2)) <> "12" or
        headFunction("1234567890", intExpr( 5)) <> "12345" or
        headFunction("1234567890", intExpr( 9)) <> "123456789" or
        headFunction("1234567890", intExpr(10)) <> "1234567890" or
        headFunction("1234567890", intExpr(11)) <> "1234567890" or
        headFunction("1234567890", intExpr(15)) <> "1234567890" or
        headFunction(striExpr(""), -5) <> "" or
        headFunction(striExpr(""),  0) <> "" or
        headFunction(striExpr(""),  1) <> "" or
        headFunction(striExpr(""),  2) <> "" or
        headFunction(striExpr(""),  5) <> "" or
        headFunction(striExpr(""),  9) <> "" or
        headFunction(striExpr(""), 10) <> "" or
        headFunction(striExpr(""), 11) <> "" or
        headFunction(striExpr(""), 15) <> "" or
        headFunction(striExpr("1"), -5) <> "" or
        headFunction(striExpr("1"),  0) <> "" or
        headFunction(striExpr("1"),  1) <> "1" or
        headFunction(striExpr("1"),  2) <> "1" or
        headFunction(striExpr("1"),  5) <> "1" or
        headFunction(striExpr("1"),  9) <> "1" or
        headFunction(striExpr("1"), 10) <> "1" or
        headFunction(striExpr("1"), 11) <> "1" or
        headFunction(striExpr("1"), 15) <> "1" or
        headFunction(striExpr("1234567890"), -5) <> "" or
        headFunction(striExpr("1234567890"),  0) <> "" or
        headFunction(striExpr("1234567890"),  1) <> "1" or
        headFunction(striExpr("1234567890"),  2) <> "12" or
        headFunction(striExpr("1234567890"),  5) <> "12345" or
        headFunction(striExpr("1234567890"),  9) <> "123456789" or
        headFunction(striExpr("1234567890"), 10) <> "1234567890" or
        headFunction(striExpr("1234567890"), 11) <> "1234567890" or
        headFunction(striExpr("1234567890"), 15) <> "1234567890" or
        headFunction(striExpr(""), intExpr(-5)) <> "" or
        headFunction(striExpr(""), intExpr( 0)) <> "" or
        headFunction(striExpr(""), intExpr( 1)) <> "" or
        headFunction(striExpr(""), intExpr( 2)) <> "" or
        headFunction(striExpr(""), intExpr( 5)) <> "" or
        headFunction(striExpr(""), intExpr( 9)) <> "" or
        headFunction(striExpr(""), intExpr(10)) <> "" or
        headFunction(striExpr(""), intExpr(11)) <> "" or
        headFunction(striExpr(""), intExpr(15)) <> "" or
        headFunction(striExpr("1"), intExpr(-5)) <> "" or
        headFunction(striExpr("1"), intExpr( 0)) <> "" or
        headFunction(striExpr("1"), intExpr( 1)) <> "1" or
        headFunction(striExpr("1"), intExpr( 2)) <> "1" or
        headFunction(striExpr("1"), intExpr( 5)) <> "1" or
        headFunction(striExpr("1"), intExpr( 9)) <> "1" or
        headFunction(striExpr("1"), intExpr(10)) <> "1" or
        headFunction(striExpr("1"), intExpr(11)) <> "1" or
        headFunction(striExpr("1"), intExpr(15)) <> "1" or
        headFunction(striExpr("1234567890"), intExpr(-5)) <> "" or
        headFunction(striExpr("1234567890"), intExpr( 0)) <> "" or
        headFunction(striExpr("1234567890"), intExpr( 1)) <> "1" or
        headFunction(striExpr("1234567890"), intExpr( 2)) <> "12" or
        headFunction(striExpr("1234567890"), intExpr( 5)) <> "12345" or
        headFunction(striExpr("1234567890"), intExpr( 9)) <> "123456789" or
        headFunction(striExpr("1234567890"), intExpr(10)) <> "1234567890" or
        headFunction(striExpr("1234567890"), intExpr(11)) <> "1234567890" or
        headFunction(striExpr("1234567890"), intExpr(15)) <> "1234567890" then
      writeln(" ***** STRING [ .. STOP ] via a function does not work correct. (5)");
      okay := FALSE;
    end if;

    if okay then
      writeln("String head works correct.");
    end if;
  end func;


const func string: tailOfEmptyString (in integer: stop) is
  return ""[stop .. ];


const func string: tailOfString1 (in integer: stop) is
  return "1"[stop .. ];


const func string: tailFunction (in integer: start) is
  return "1234567890"[start .. ];


const func string: tailFunction (in string: stri) is
  return stri[1 .. ];


const func string: tailFunction (in string: stri, in integer: start) is
  return stri[start .. ];


const proc: check_string_tail is func
  local
    var boolean: okay is TRUE;
    var boolean: ok is TRUE;
    var string: stri is "";
  begin
    if  "" [ -5 .. ] <> "" or
        "" [  0 .. ] <> "" or
        "" [  1 .. ] <> "" or
        "" [  2 .. ] <> "" or
        "" [  5 .. ] <> "" or
        "" [  9 .. ] <> "" or
        "" [ 10 .. ] <> "" or
        "" [ 11 .. ] <> "" or
        "" [ 15 .. ] <> "" or
        "1" [ -5 .. ] <> "1" or
        "1" [  0 .. ] <> "1" or
        "1" [  1 .. ] <> "1" or
        "1" [  2 .. ] <> "" or
        "1" [  5 .. ] <> "" or
        "1" [  9 .. ] <> "" or
        "1" [ 10 .. ] <> "" or
        "1" [ 11 .. ] <> "" or
        "1" [ 15 .. ] <> "" or
        "1234567890" [ -5 .. ] <> "1234567890" or
        "1234567890" [  0 .. ] <> "1234567890" or
        "1234567890" [  1 .. ] <> "1234567890" or
        "1234567890" [  2 .. ] <> "234567890" or
        "1234567890" [  5 .. ] <> "567890" or
        "1234567890" [  9 .. ] <> "90" or
        "1234567890" [ 10 .. ] <> "0" or
        "1234567890" [ 11 .. ] <> "" or
        "1234567890" [ 15 .. ] <> "" or
        "" [ intExpr(-5) .. ] <> "" or
        "" [ intExpr( 0) .. ] <> "" or
        "" [ intExpr( 1) .. ] <> "" or
        "" [ intExpr( 2) .. ] <> "" or
        "" [ intExpr( 5) .. ] <> "" or
        "" [ intExpr( 9) .. ] <> "" or
        "" [ intExpr(10) .. ] <> "" or
        "" [ intExpr(11) .. ] <> "" or
        "" [ intExpr(15) .. ] <> "" or
        "1" [ intExpr(-5) .. ] <> "1" or
        "1" [ intExpr( 0) .. ] <> "1" or
        "1" [ intExpr( 1) .. ] <> "1" or
        "1" [ intExpr( 2) .. ] <> "" or
        "1" [ intExpr( 5) .. ] <> "" or
        "1" [ intExpr( 9) .. ] <> "" or
        "1" [ intExpr(10) .. ] <> "" or
        "1" [ intExpr(11) .. ] <> "" or
        "1" [ intExpr(15) .. ] <> "" or
        "1234567890" [ intExpr(-5) .. ] <> "1234567890" or
        "1234567890" [ intExpr( 0) .. ] <> "1234567890" or
        "1234567890" [ intExpr( 1) .. ] <> "1234567890" or
        "1234567890" [ intExpr( 2) .. ] <> "234567890" or
        "1234567890" [ intExpr( 5) .. ] <> "567890" or
        "1234567890" [ intExpr( 9) .. ] <> "90" or
        "1234567890" [ intExpr(10) .. ] <> "0" or
        "1234567890" [ intExpr(11) .. ] <> "" or
        "1234567890" [ intExpr(15) .. ] <> "" or
        striExpr("") [ -5 .. ] <> "" or
        striExpr("") [  0 .. ] <> "" or
        striExpr("") [  1 .. ] <> "" or
        striExpr("") [  2 .. ] <> "" or
        striExpr("") [  5 .. ] <> "" or
        striExpr("") [  9 .. ] <> "" or
        striExpr("") [ 10 .. ] <> "" or
        striExpr("") [ 11 .. ] <> "" or
        striExpr("") [ 15 .. ] <> "" or
        striExpr("1") [ -5 .. ] <> "1" or
        striExpr("1") [  0 .. ] <> "1" or
        striExpr("1") [  1 .. ] <> "1" or
        striExpr("1") [  2 .. ] <> "" or
        striExpr("1") [  5 .. ] <> "" or
        striExpr("1") [  9 .. ] <> "" or
        striExpr("1") [ 10 .. ] <> "" or
        striExpr("1") [ 11 .. ] <> "" or
        striExpr("1") [ 15 .. ] <> "" or
        striExpr("1234567890") [ -5 .. ] <> "1234567890" or
        striExpr("1234567890") [  0 .. ] <> "1234567890" or
        striExpr("1234567890") [  1 .. ] <> "1234567890" or
        striExpr("1234567890") [  2 .. ] <> "234567890" or
        striExpr("1234567890") [  5 .. ] <> "567890" or
        striExpr("1234567890") [  9 .. ] <> "90" or
        striExpr("1234567890") [ 10 .. ] <> "0" or
        striExpr("1234567890") [ 11 .. ] <> "" or
        striExpr("1234567890") [ 15 .. ] <> "" or
        striExpr("") [ intExpr(-5) .. ] <> "" or
        striExpr("") [ intExpr( 0) .. ] <> "" or
        striExpr("") [ intExpr( 1) .. ] <> "" or
        striExpr("") [ intExpr( 2) .. ] <> "" or
        striExpr("") [ intExpr( 5) .. ] <> "" or
        striExpr("") [ intExpr( 9) .. ] <> "" or
        striExpr("") [ intExpr(10) .. ] <> "" or
        striExpr("") [ intExpr(11) .. ] <> "" or
        striExpr("") [ intExpr(15) .. ] <> "" or
        striExpr("1") [ intExpr(-5) .. ] <> "1" or
        striExpr("1") [ intExpr( 0) .. ] <> "1" or
        striExpr("1") [ intExpr( 1) .. ] <> "1" or
        striExpr("1") [ intExpr( 2) .. ] <> "" or
        striExpr("1") [ intExpr( 5) .. ] <> "" or
        striExpr("1") [ intExpr( 9) .. ] <> "" or
        striExpr("1") [ intExpr(10) .. ] <> "" or
        striExpr("1") [ intExpr(11) .. ] <> "" or
        striExpr("1") [ intExpr(15) .. ] <> "" or
        striExpr("1234567890") [ intExpr(-5) .. ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 0) .. ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 1) .. ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 2) .. ] <> "234567890" or
        striExpr("1234567890") [ intExpr( 5) .. ] <> "567890" or
        striExpr("1234567890") [ intExpr( 9) .. ] <> "90" or
        striExpr("1234567890") [ intExpr(10) .. ] <> "0" or
        striExpr("1234567890") [ intExpr(11) .. ] <> "" or
        striExpr("1234567890") [ intExpr(15) .. ] <> "" then
      writeln(" ***** STRING [ START .. ] does not work correct.");
      okay := FALSE;
    end if;

    stri := "" [ -5 .. ]; ok := ok and stri = "";
    stri := "" [  0 .. ]; ok := ok and stri = "";
    stri := "" [  1 .. ]; ok := ok and stri = "";
    stri := "" [  2 .. ]; ok := ok and stri = "";
    stri := "" [  5 .. ]; ok := ok and stri = "";
    stri := "" [  9 .. ]; ok := ok and stri = "";
    stri := "" [ 10 .. ]; ok := ok and stri = "";
    stri := "" [ 11 .. ]; ok := ok and stri = "";
    stri := "" [ 15 .. ]; ok := ok and stri = "";
    stri := "1" [ -5 .. ]; ok := ok and stri = "1";
    stri := "1" [  0 .. ]; ok := ok and stri = "1";
    stri := "1" [  1 .. ]; ok := ok and stri = "1";
    stri := "1" [  2 .. ]; ok := ok and stri = "";
    stri := "1" [  5 .. ]; ok := ok and stri = "";
    stri := "1" [  9 .. ]; ok := ok and stri = "";
    stri := "1" [ 10 .. ]; ok := ok and stri = "";
    stri := "1" [ 11 .. ]; ok := ok and stri = "";
    stri := "1" [ 15 .. ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 .. ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  0 .. ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  1 .. ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  2 .. ]; ok := ok and stri = "234567890";
    stri := "1234567890" [  5 .. ]; ok := ok and stri = "567890";
    stri := "1234567890" [  9 .. ]; ok := ok and stri = "90";
    stri := "1234567890" [ 10 .. ]; ok := ok and stri = "0";
    stri := "1234567890" [ 11 .. ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 .. ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) .. ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) .. ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) .. ]; ok := ok and stri = "";
    stri := "" [ intExpr( 2) .. ]; ok := ok and stri = "";
    stri := "" [ intExpr( 5) .. ]; ok := ok and stri = "";
    stri := "" [ intExpr( 9) .. ]; ok := ok and stri = "";
    stri := "" [ intExpr(10) .. ]; ok := ok and stri = "";
    stri := "" [ intExpr(11) .. ]; ok := ok and stri = "";
    stri := "" [ intExpr(15) .. ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) .. ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 0) .. ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 1) .. ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 2) .. ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 5) .. ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 9) .. ]; ok := ok and stri = "";
    stri := "1" [ intExpr(10) .. ]; ok := ok and stri = "";
    stri := "1" [ intExpr(11) .. ]; ok := ok and stri = "";
    stri := "1" [ intExpr(15) .. ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) .. ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 0) .. ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 1) .. ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 2) .. ]; ok := ok and stri = "234567890";
    stri := "1234567890" [ intExpr( 5) .. ]; ok := ok and stri = "567890";
    stri := "1234567890" [ intExpr( 9) .. ]; ok := ok and stri = "90";
    stri := "1234567890" [ intExpr(10) .. ]; ok := ok and stri = "0";
    stri := "1234567890" [ intExpr(11) .. ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) .. ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 .. ]; ok := ok and stri = "";
    stri := striExpr("") [  0 .. ]; ok := ok and stri = "";
    stri := striExpr("") [  1 .. ]; ok := ok and stri = "";
    stri := striExpr("") [  2 .. ]; ok := ok and stri = "";
    stri := striExpr("") [  5 .. ]; ok := ok and stri = "";
    stri := striExpr("") [  9 .. ]; ok := ok and stri = "";
    stri := striExpr("") [ 10 .. ]; ok := ok and stri = "";
    stri := striExpr("") [ 11 .. ]; ok := ok and stri = "";
    stri := striExpr("") [ 15 .. ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 .. ]; ok := ok and stri = "1";
    stri := striExpr("1") [  0 .. ]; ok := ok and stri = "1";
    stri := striExpr("1") [  1 .. ]; ok := ok and stri = "1";
    stri := striExpr("1") [  2 .. ]; ok := ok and stri = "";
    stri := striExpr("1") [  5 .. ]; ok := ok and stri = "";
    stri := striExpr("1") [  9 .. ]; ok := ok and stri = "";
    stri := striExpr("1") [ 10 .. ]; ok := ok and stri = "";
    stri := striExpr("1") [ 11 .. ]; ok := ok and stri = "";
    stri := striExpr("1") [ 15 .. ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 .. ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  0 .. ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  1 .. ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  2 .. ]; ok := ok and stri = "234567890";
    stri := striExpr("1234567890") [  5 .. ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [  9 .. ]; ok := ok and stri = "90";
    stri := striExpr("1234567890") [ 10 .. ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ 11 .. ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 .. ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) .. ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) .. ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) .. ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 2) .. ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 5) .. ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 9) .. ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(10) .. ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(11) .. ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(15) .. ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) .. ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 0) .. ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 1) .. ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 2) .. ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 5) .. ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 9) .. ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(10) .. ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(11) .. ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(15) .. ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) .. ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 0) .. ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 1) .. ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 2) .. ]; ok := ok and stri = "234567890";
    stri := striExpr("1234567890") [ intExpr( 5) .. ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [ intExpr( 9) .. ]; ok := ok and stri = "90";
    stri := striExpr("1234567890") [ intExpr(10) .. ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ intExpr(11) .. ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) .. ]; ok := ok and stri = "";
    if not ok then
      writeln(" ***** stri := STRING [ START .. ] does not work correct.");
      okay := FALSE;
    end if;

    if  tailOfEmptyString(-5) <> "" or
        tailOfEmptyString( 0) <> "" or
        tailOfEmptyString( 1) <> "" or
        tailOfEmptyString( 2) <> "" or
        tailOfEmptyString( 5) <> "" or
        tailOfEmptyString( 9) <> "" or
        tailOfEmptyString(10) <> "" or
        tailOfEmptyString(11) <> "" or
        tailOfEmptyString(15) <> "" or
        tailOfEmptyString(intExpr(-5)) <> "" or
        tailOfEmptyString(intExpr( 0)) <> "" or
        tailOfEmptyString(intExpr( 1)) <> "" or
        tailOfEmptyString(intExpr( 2)) <> "" or
        tailOfEmptyString(intExpr( 5)) <> "" or
        tailOfEmptyString(intExpr( 9)) <> "" or
        tailOfEmptyString(intExpr(10)) <> "" or
        tailOfEmptyString(intExpr(11)) <> "" or
        tailOfEmptyString(intExpr(15)) <> "" then
      writeln(" ***** STRING [ START .. ] via a function does not work correct. (1)");
      okay := FALSE;
    end if;

    if  tailOfString1(-5) <> "1" or
        tailOfString1( 0) <> "1" or
        tailOfString1( 1) <> "1" or
        tailOfString1( 2) <> "" or
        tailOfString1( 5) <> "" or
        tailOfString1( 9) <> "" or
        tailOfString1(10) <> "" or
        tailOfString1(11) <> "" or
        tailOfString1(15) <> "" or
        tailOfString1(intExpr(-5)) <> "1" or
        tailOfString1(intExpr( 0)) <> "1" or
        tailOfString1(intExpr( 1)) <> "1" or
        tailOfString1(intExpr( 2)) <> "" or
        tailOfString1(intExpr( 5)) <> "" or
        tailOfString1(intExpr( 9)) <> "" or
        tailOfString1(intExpr(10)) <> "" or
        tailOfString1(intExpr(11)) <> "" or
        tailOfString1(intExpr(15)) <> "" then
      writeln(" ***** STRING [ START .. ] via a function does not work correct. (2)");
      okay := FALSE;
    end if;

    if  tailFunction(-5) <> "1234567890" or
        tailFunction( 0) <> "1234567890" or
        tailFunction( 1) <> "1234567890" or
        tailFunction( 2) <> "234567890" or
        tailFunction( 5) <> "567890" or
        tailFunction( 9) <> "90" or
        tailFunction(10) <> "0" or
        tailFunction(11) <> "" or
        tailFunction(15) <> "" or
        tailFunction(intExpr(-5)) <> "1234567890" or
        tailFunction(intExpr( 0)) <> "1234567890" or
        tailFunction(intExpr( 1)) <> "1234567890" or
        tailFunction(intExpr( 2)) <> "234567890" or
        tailFunction(intExpr( 5)) <> "567890" or
        tailFunction(intExpr( 9)) <> "90" or
        tailFunction(intExpr(10)) <> "0" or
        tailFunction(intExpr(11)) <> "" or
        tailFunction(intExpr(15)) <> "" then
      writeln(" ***** STRING [ START .. ] via a function does not work correct. (3)");
      okay := FALSE;
    end if;

    if  tailFunction("") <> "" or
        tailFunction("1") <> "1" or
        tailFunction("1234567890") <> "1234567890" or
        tailFunction(striExpr("")) <> "" or
        tailFunction(striExpr("1")) <> "1" or
        tailFunction(striExpr("1234567890")) <> "1234567890" then
      writeln(" ***** STRING [ START .. ] via a function does not work correct. (4)");
      okay := FALSE;
    end if;

    if  tailFunction("", -5) <> "" or
        tailFunction("",  0) <> "" or
        tailFunction("",  1) <> "" or
        tailFunction("",  2) <> "" or
        tailFunction("",  5) <> "" or
        tailFunction("",  9) <> "" or
        tailFunction("", 10) <> "" or
        tailFunction("", 11) <> "" or
        tailFunction("", 15) <> "" or
        tailFunction("1", -5) <> "1" or
        tailFunction("1",  0) <> "1" or
        tailFunction("1",  1) <> "1" or
        tailFunction("1",  2) <> "" or
        tailFunction("1",  5) <> "" or
        tailFunction("1",  9) <> "" or
        tailFunction("1", 10) <> "" or
        tailFunction("1", 11) <> "" or
        tailFunction("1", 15) <> "" or
        tailFunction("1234567890", -5) <> "1234567890" or
        tailFunction("1234567890",  0) <> "1234567890" or
        tailFunction("1234567890",  1) <> "1234567890" or
        tailFunction("1234567890",  2) <> "234567890" or
        tailFunction("1234567890",  5) <> "567890" or
        tailFunction("1234567890", 10) <> "0" or
        tailFunction("1234567890",  9) <> "90" or
        tailFunction("1234567890", 11) <> "" or
        tailFunction("1234567890", 15) <> "" or
        tailFunction("", intExpr(-5)) <> "" or
        tailFunction("", intExpr( 0)) <> "" or
        tailFunction("", intExpr( 1)) <> "" or
        tailFunction("", intExpr( 2)) <> "" or
        tailFunction("", intExpr( 5)) <> "" or
        tailFunction("", intExpr( 9)) <> "" or
        tailFunction("", intExpr(10)) <> "" or
        tailFunction("", intExpr(11)) <> "" or
        tailFunction("", intExpr(15)) <> "" or
        tailFunction("1", intExpr(-5)) <> "1" or
        tailFunction("1", intExpr( 0)) <> "1" or
        tailFunction("1", intExpr( 1)) <> "1" or
        tailFunction("1", intExpr( 2)) <> "" or
        tailFunction("1", intExpr( 5)) <> "" or
        tailFunction("1", intExpr( 9)) <> "" or
        tailFunction("1", intExpr(10)) <> "" or
        tailFunction("1", intExpr(11)) <> "" or
        tailFunction("1", intExpr(15)) <> "" or
        tailFunction("1234567890", intExpr(-5)) <> "1234567890" or
        tailFunction("1234567890", intExpr( 0)) <> "1234567890" or
        tailFunction("1234567890", intExpr( 1)) <> "1234567890" or
        tailFunction("1234567890", intExpr( 2)) <> "234567890" or
        tailFunction("1234567890", intExpr( 5)) <> "567890" or
        tailFunction("1234567890", intExpr( 9)) <> "90" or
        tailFunction("1234567890", intExpr(10)) <> "0" or
        tailFunction("1234567890", intExpr(11)) <> "" or
        tailFunction("1234567890", intExpr(15)) <> "" or
        tailFunction(striExpr(""), -5) <> "" or
        tailFunction(striExpr(""),  0) <> "" or
        tailFunction(striExpr(""),  1) <> "" or
        tailFunction(striExpr(""),  2) <> "" or
        tailFunction(striExpr(""),  5) <> "" or
        tailFunction(striExpr(""),  9) <> "" or
        tailFunction(striExpr(""), 10) <> "" or
        tailFunction(striExpr(""), 11) <> "" or
        tailFunction(striExpr(""), 15) <> "" or
        tailFunction(striExpr("1"), -5) <> "1" or
        tailFunction(striExpr("1"),  0) <> "1" or
        tailFunction(striExpr("1"),  1) <> "1" or
        tailFunction(striExpr("1"),  2) <> "" or
        tailFunction(striExpr("1"),  5) <> "" or
        tailFunction(striExpr("1"),  9) <> "" or
        tailFunction(striExpr("1"), 10) <> "" or
        tailFunction(striExpr("1"), 11) <> "" or
        tailFunction(striExpr("1"), 15) <> "" or
        tailFunction(striExpr("1234567890"), -5) <> "1234567890" or
        tailFunction(striExpr("1234567890"),  0) <> "1234567890" or
        tailFunction(striExpr("1234567890"),  1) <> "1234567890" or
        tailFunction(striExpr("1234567890"),  2) <> "234567890" or
        tailFunction(striExpr("1234567890"),  5) <> "567890" or
        tailFunction(striExpr("1234567890"),  9) <> "90" or
        tailFunction(striExpr("1234567890"), 10) <> "0" or
        tailFunction(striExpr("1234567890"), 11) <> "" or
        tailFunction(striExpr("1234567890"), 15) <> "" or
        tailFunction(striExpr(""), intExpr(-5)) <> "" or
        tailFunction(striExpr(""), intExpr( 0)) <> "" or
        tailFunction(striExpr(""), intExpr( 1)) <> "" or
        tailFunction(striExpr(""), intExpr( 2)) <> "" or
        tailFunction(striExpr(""), intExpr( 5)) <> "" or
        tailFunction(striExpr(""), intExpr( 9)) <> "" or
        tailFunction(striExpr(""), intExpr(10)) <> "" or
        tailFunction(striExpr(""), intExpr(11)) <> "" or
        tailFunction(striExpr(""), intExpr(15)) <> "" or
        tailFunction(striExpr("1"), intExpr(-5)) <> "1" or
        tailFunction(striExpr("1"), intExpr( 0)) <> "1" or
        tailFunction(striExpr("1"), intExpr( 1)) <> "1" or
        tailFunction(striExpr("1"), intExpr( 2)) <> "" or
        tailFunction(striExpr("1"), intExpr( 5)) <> "" or
        tailFunction(striExpr("1"), intExpr( 9)) <> "" or
        tailFunction(striExpr("1"), intExpr(10)) <> "" or
        tailFunction(striExpr("1"), intExpr(11)) <> "" or
        tailFunction(striExpr("1"), intExpr(15)) <> "" or
        tailFunction(striExpr("1234567890"), intExpr(-5)) <> "1234567890" or
        tailFunction(striExpr("1234567890"), intExpr( 0)) <> "1234567890" or
        tailFunction(striExpr("1234567890"), intExpr( 1)) <> "1234567890" or
        tailFunction(striExpr("1234567890"), intExpr( 2)) <> "234567890" or
        tailFunction(striExpr("1234567890"), intExpr( 5)) <> "567890" or
        tailFunction(striExpr("1234567890"), intExpr( 9)) <> "90" or
        tailFunction(striExpr("1234567890"), intExpr(10)) <> "0" or
        tailFunction(striExpr("1234567890"), intExpr(11)) <> "" or
        tailFunction(striExpr("1234567890"), intExpr(15)) <> "" then
      writeln(" ***** STRING [ START .. ] via a function does not work correct. (5)");
      okay := FALSE;
    end if;

    if okay then
      writeln("String tail works correct.");
    end if;
  end func;


const func string: rangeFunction (in string: stri, in integer: start, in integer: stop) is
  return stri[start .. stop];


const proc: check_string_range is func
  local
    var boolean: okay is TRUE;
    var boolean: ok is TRUE;
    var string: stri is "";
  begin
    if  "" [ -5 .. -9 ] <> "" or
        "" [ -5 .. -6 ] <> "" or
        "" [ -5 .. -5 ] <> "" or
        "" [ -5 .. -4 ] <> "" or
        "" [ -5 ..  0 ] <> "" or
        "" [ -5 ..  1 ] <> "" or
        "" [ -5 .. 15 ] <> "" or
        "" [  0 .. -9 ] <> "" or
        "" [  0 .. -1 ] <> "" or
        "" [  0 ..  0 ] <> "" or
        "" [  0 ..  1 ] <> "" or
        "" [  0 .. 15 ] <> "" or
        "" [  1 .. -5 ] <> "" or
        "" [  1 ..  0 ] <> "" or
        "" [  1 ..  1 ] <> "" or
        "" [  1 ..  2 ] <> "" or
        "" [  1 .. 15 ] <> "" or
        "" [  5 .. -5 ] <> "" or
        "" [  5 ..  0 ] <> "" or
        "" [  5 ..  1 ] <> "" or
        "" [  5 ..  4 ] <> "" or
        "" [  5 ..  5 ] <> "" or
        "" [  5 ..  6 ] <> "" or
        "" [  5 .. 15 ] <> "" or
        "1" [ -5 .. -9 ] <> "" or
        "1" [ -5 .. -5 ] <> "" or
        "1" [ -5 ..  0 ] <> "" or
        "1" [ -5 ..  1 ] <> "1" or
        "1" [ -5 ..  2 ] <> "1" or
        "1" [ -5 .. 15 ] <> "1" or
        "1" [  0 .. -5 ] <> "" or
        "1" [  0 ..  0 ] <> "" or
        "1" [  0 ..  1 ] <> "1" or
        "1" [  0 ..  2 ] <> "1" or
        "1" [  0 .. 15 ] <> "1" or
        "1" [  1 .. -5 ] <> "" or
        "1" [  1 ..  0 ] <> "" or
        "1" [  1 ..  1 ] <> "1" or
        "1" [  1 ..  2 ] <> "1" or
        "1" [  1 .. 15 ] <> "1" or
        "1" [  5 .. -5 ] <> "" or
        "1" [  5 ..  0 ] <> "" or
        "1" [  5 ..  1 ] <> "" or
        "1" [  5 ..  4 ] <> "" or
        "1" [  5 ..  5 ] <> "" or
        "1" [  5 ..  6 ] <> "" or
        "1" [  5 .. 15 ] <> "" or
        "1234567890" [ -5 .. -9 ] <> "" or
        "1234567890" [ -5 .. -5 ] <> "" or
        "1234567890" [ -5 ..  0 ] <> "" or
        "1234567890" [ -5 ..  1 ] <> "1" or
        "1234567890" [ -5 ..  5 ] <> "12345" or
        "1234567890" [ -5 ..  9 ] <> "123456789" or
        "1234567890" [ -5 .. 10 ] <> "1234567890" or
        "1234567890" [ -5 .. 11 ] <> "1234567890" or
        "1234567890" [ -5 .. 15 ] <> "1234567890" or
        "1234567890" [  0 .. -5 ] <> "" or
        "1234567890" [  0 ..  0 ] <> "" or
        "1234567890" [  0 ..  1 ] <> "1" or
        "1234567890" [  0 ..  5 ] <> "12345" or
        "1234567890" [  0 ..  9 ] <> "123456789" or
        "1234567890" [  0 .. 10 ] <> "1234567890" or
        "1234567890" [  0 .. 11 ] <> "1234567890" or
        "1234567890" [  0 .. 15 ] <> "1234567890" or
        "1234567890" [  1 .. -5 ] <> "" or
        "1234567890" [  1 ..  0 ] <> "" or
        "1234567890" [  1 ..  1 ] <> "1" or
        "1234567890" [  1 ..  5 ] <> "12345" or
        "1234567890" [  1 ..  9 ] <> "123456789" or
        "1234567890" [  1 .. 10 ] <> "1234567890" or
        "1234567890" [  1 .. 11 ] <> "1234567890" or
        "1234567890" [  1 .. 15 ] <> "1234567890" or
        "1234567890" [  5 .. -5 ] <> "" or
        "1234567890" [  5 ..  0 ] <> "" or
        "1234567890" [  5 ..  1 ] <> "" or
        "1234567890" [  5 ..  4 ] <> "" or
        "1234567890" [  5 ..  5 ] <> "5" or
        "1234567890" [  5 ..  6 ] <> "56" or
        "1234567890" [  5 ..  9 ] <> "56789" or
        "1234567890" [  5 .. 10 ] <> "567890" or
        "1234567890" [  5 .. 11 ] <> "567890" or
        "1234567890" [  5 .. 15 ] <> "567890" or
        "1234567890" [ 10 .. -5 ] <> "" or
        "1234567890" [ 10 ..  0 ] <> "" or
        "1234567890" [ 10 ..  1 ] <> "" or
        "1234567890" [ 10 ..  9 ] <> "" or
        "1234567890" [ 10 .. 10 ] <> "0" or
        "1234567890" [ 10 .. 11 ] <> "0" or
        "1234567890" [ 10 .. 15 ] <> "0" or
        "1234567890" [ 11 .. -5 ] <> "" or
        "1234567890" [ 11 ..  0 ] <> "" or
        "1234567890" [ 11 ..  1 ] <> "" or
        "1234567890" [ 11 ..  5 ] <> "" or
        "1234567890" [ 11 .. 10 ] <> "" or
        "1234567890" [ 11 .. 11 ] <> "" or
        "1234567890" [ 11 .. 15 ] <> "" or
        "1234567890" [ 15 .. -5 ] <> "" or
        "1234567890" [ 15 ..  0 ] <> "" or
        "1234567890" [ 15 ..  1 ] <> "" or
        "1234567890" [ 15 ..  5 ] <> "" or
        "1234567890" [ 15 .. 10 ] <> "" or
        "1234567890" [ 15 .. 11 ] <> "" or
        "1234567890" [ 15 .. 15 ] <> "" or
        "1234567890" [ 15 .. 20 ] <> "" or
        "" [ -5 .. intExpr(-9) ] <> "" or
        "" [ -5 .. intExpr(-6) ] <> "" or
        "" [ -5 .. intExpr(-5) ] <> "" or
        "" [ -5 .. intExpr(-4) ] <> "" or
        "" [ -5 .. intExpr( 0) ] <> "" or
        "" [ -5 .. intExpr( 1) ] <> "" or
        "" [ -5 .. intExpr(15) ] <> "" or
        "" [  0 .. intExpr(-9) ] <> "" or
        "" [  0 .. intExpr(-1) ] <> "" or
        "" [  0 .. intExpr( 0) ] <> "" or
        "" [  0 .. intExpr( 1) ] <> "" or
        "" [  0 .. intExpr(15) ] <> "" or
        "" [  1 .. intExpr(-5) ] <> "" or
        "" [  1 .. intExpr( 0) ] <> "" or
        "" [  1 .. intExpr( 1) ] <> "" or
        "" [  1 .. intExpr( 2) ] <> "" or
        "" [  1 .. intExpr(15) ] <> "" or
        "" [  5 .. intExpr(-5) ] <> "" or
        "" [  5 .. intExpr( 0) ] <> "" or
        "" [  5 .. intExpr( 1) ] <> "" or
        "" [  5 .. intExpr( 4) ] <> "" or
        "" [  5 .. intExpr( 5) ] <> "" or
        "" [  5 .. intExpr( 6) ] <> "" or
        "" [  5 .. intExpr(15) ] <> "" or
        "1" [ -5 .. intExpr(-9) ] <> "" or
        "1" [ -5 .. intExpr(-5) ] <> "" or
        "1" [ -5 .. intExpr( 0) ] <> "" or
        "1" [ -5 .. intExpr( 1) ] <> "1" or
        "1" [ -5 .. intExpr( 2) ] <> "1" or
        "1" [ -5 .. intExpr(15) ] <> "1" or
        "1" [  0 .. intExpr(-5) ] <> "" or
        "1" [  0 .. intExpr( 0) ] <> "" or
        "1" [  0 .. intExpr( 1) ] <> "1" or
        "1" [  0 .. intExpr( 2) ] <> "1" or
        "1" [  0 .. intExpr(15) ] <> "1" or
        "1" [  1 .. intExpr(-5) ] <> "" or
        "1" [  1 .. intExpr( 0) ] <> "" or
        "1" [  1 .. intExpr( 1) ] <> "1" or
        "1" [  1 .. intExpr( 2) ] <> "1" or
        "1" [  1 .. intExpr(15) ] <> "1" or
        "1" [  5 .. intExpr(-5) ] <> "" or
        "1" [  5 .. intExpr( 0) ] <> "" or
        "1" [  5 .. intExpr( 1) ] <> "" or
        "1" [  5 .. intExpr( 4) ] <> "" or
        "1" [  5 .. intExpr( 5) ] <> "" or
        "1" [  5 .. intExpr( 6) ] <> "" or
        "1" [  5 .. intExpr(15) ] <> "" or
        "1234567890" [ -5 .. intExpr(-9) ] <> "" or
        "1234567890" [ -5 .. intExpr(-5) ] <> "" or
        "1234567890" [ -5 .. intExpr( 0) ] <> "" or
        "1234567890" [ -5 .. intExpr( 1) ] <> "1" or
        "1234567890" [ -5 .. intExpr( 5) ] <> "12345" or
        "1234567890" [ -5 .. intExpr( 9) ] <> "123456789" or
        "1234567890" [ -5 .. intExpr(10) ] <> "1234567890" or
        "1234567890" [ -5 .. intExpr(11) ] <> "1234567890" or
        "1234567890" [ -5 .. intExpr(15) ] <> "1234567890" or
        "1234567890" [  0 .. intExpr(-5) ] <> "" or
        "1234567890" [  0 .. intExpr( 0) ] <> "" or
        "1234567890" [  0 .. intExpr( 1) ] <> "1" or
        "1234567890" [  0 .. intExpr( 5) ] <> "12345" or
        "1234567890" [  0 .. intExpr( 9) ] <> "123456789" or
        "1234567890" [  0 .. intExpr(10) ] <> "1234567890" or
        "1234567890" [  0 .. intExpr(11) ] <> "1234567890" or
        "1234567890" [  0 .. intExpr(15) ] <> "1234567890" or
        "1234567890" [  1 .. intExpr(-5) ] <> "" or
        "1234567890" [  1 .. intExpr( 0) ] <> "" or
        "1234567890" [  1 .. intExpr( 1) ] <> "1" or
        "1234567890" [  1 .. intExpr( 5) ] <> "12345" or
        "1234567890" [  1 .. intExpr( 9) ] <> "123456789" or
        "1234567890" [  1 .. intExpr(10) ] <> "1234567890" or
        "1234567890" [  1 .. intExpr(11) ] <> "1234567890" or
        "1234567890" [  1 .. intExpr(15) ] <> "1234567890" or
        "1234567890" [  5 .. intExpr(-5) ] <> "" or
        "1234567890" [  5 .. intExpr( 0) ] <> "" or
        "1234567890" [  5 .. intExpr( 1) ] <> "" or
        "1234567890" [  5 .. intExpr( 4) ] <> "" or
        "1234567890" [  5 .. intExpr( 5) ] <> "5" or
        "1234567890" [  5 .. intExpr( 6) ] <> "56" or
        "1234567890" [  5 .. intExpr( 9) ] <> "56789" or
        "1234567890" [  5 .. intExpr(10) ] <> "567890" or
        "1234567890" [  5 .. intExpr(11) ] <> "567890" or
        "1234567890" [  5 .. intExpr(15) ] <> "567890" or
        "1234567890" [ 10 .. intExpr(-5) ] <> "" or
        "1234567890" [ 10 .. intExpr( 0) ] <> "" or
        "1234567890" [ 10 .. intExpr( 1) ] <> "" or
        "1234567890" [ 10 .. intExpr( 9) ] <> "" or
        "1234567890" [ 10 .. intExpr(10) ] <> "0" or
        "1234567890" [ 10 .. intExpr(11) ] <> "0" or
        "1234567890" [ 10 .. intExpr(15) ] <> "0" or
        "1234567890" [ 11 .. intExpr(-5) ] <> "" or
        "1234567890" [ 11 .. intExpr( 0) ] <> "" or
        "1234567890" [ 11 .. intExpr( 1) ] <> "" or
        "1234567890" [ 11 .. intExpr( 5) ] <> "" or
        "1234567890" [ 11 .. intExpr(10) ] <> "" or
        "1234567890" [ 11 .. intExpr(11) ] <> "" or
        "1234567890" [ 11 .. intExpr(15) ] <> "" or
        "1234567890" [ 15 .. intExpr(-5) ] <> "" or
        "1234567890" [ 15 .. intExpr( 0) ] <> "" or
        "1234567890" [ 15 .. intExpr( 1) ] <> "" or
        "1234567890" [ 15 .. intExpr( 5) ] <> "" or
        "1234567890" [ 15 .. intExpr(10) ] <> "" or
        "1234567890" [ 15 .. intExpr(11) ] <> "" or
        "1234567890" [ 15 .. intExpr(15) ] <> "" or
        "1234567890" [ 15 .. intExpr(20) ] <> "" or
        "" [ intExpr(-5) .. -9 ] <> "" or
        "" [ intExpr(-5) .. -6 ] <> "" or
        "" [ intExpr(-5) .. -5 ] <> "" or
        "" [ intExpr(-5) .. -4 ] <> "" or
        "" [ intExpr(-5) ..  0 ] <> "" or
        "" [ intExpr(-5) ..  1 ] <> "" or
        "" [ intExpr(-5) .. 15 ] <> "" or
        "" [ intExpr( 0) .. -9 ] <> "" or
        "" [ intExpr( 0) .. -1 ] <> "" or
        "" [ intExpr( 0) ..  0 ] <> "" or
        "" [ intExpr( 0) ..  1 ] <> "" or
        "" [ intExpr( 0) .. 15 ] <> "" or
        "" [ intExpr( 1) .. -5 ] <> "" or
        "" [ intExpr( 1) ..  0 ] <> "" or
        "" [ intExpr( 1) ..  1 ] <> "" or
        "" [ intExpr( 1) ..  2 ] <> "" or
        "" [ intExpr( 1) .. 15 ] <> "" or
        "" [ intExpr( 5) .. -5 ] <> "" or
        "" [ intExpr( 5) ..  0 ] <> "" or
        "" [ intExpr( 5) ..  1 ] <> "" or
        "" [ intExpr( 5) ..  4 ] <> "" or
        "" [ intExpr( 5) ..  5 ] <> "" or
        "" [ intExpr( 5) ..  6 ] <> "" or
        "" [ intExpr( 5) .. 15 ] <> "" or
        "1" [ intExpr(-5) .. -9 ] <> "" or
        "1" [ intExpr(-5) .. -5 ] <> "" or
        "1" [ intExpr(-5) ..  0 ] <> "" or
        "1" [ intExpr(-5) ..  1 ] <> "1" or
        "1" [ intExpr(-5) ..  2 ] <> "1" or
        "1" [ intExpr(-5) .. 15 ] <> "1" or
        "1" [ intExpr( 0) .. -5 ] <> "" or
        "1" [ intExpr( 0) ..  0 ] <> "" or
        "1" [ intExpr( 0) ..  1 ] <> "1" or
        "1" [ intExpr( 0) ..  2 ] <> "1" or
        "1" [ intExpr( 0) .. 15 ] <> "1" or
        "1" [ intExpr( 1) .. -5 ] <> "" or
        "1" [ intExpr( 1) ..  0 ] <> "" or
        "1" [ intExpr( 1) ..  1 ] <> "1" or
        "1" [ intExpr( 1) ..  2 ] <> "1" or
        "1" [ intExpr( 1) .. 15 ] <> "1" or
        "1" [ intExpr( 5) .. -5 ] <> "" or
        "1" [ intExpr( 5) ..  0 ] <> "" or
        "1" [ intExpr( 5) ..  1 ] <> "" or
        "1" [ intExpr( 5) ..  4 ] <> "" or
        "1" [ intExpr( 5) ..  5 ] <> "" or
        "1" [ intExpr( 5) ..  6 ] <> "" or
        "1" [ intExpr( 5) .. 15 ] <> "" or
        "1234567890" [ intExpr(-5) .. -9 ] <> "" or
        "1234567890" [ intExpr(-5) .. -5 ] <> "" or
        "1234567890" [ intExpr(-5) ..  0 ] <> "" or
        "1234567890" [ intExpr(-5) ..  1 ] <> "1" or
        "1234567890" [ intExpr(-5) ..  5 ] <> "12345" or
        "1234567890" [ intExpr(-5) ..  9 ] <> "123456789" or
        "1234567890" [ intExpr(-5) .. 10 ] <> "1234567890" or
        "1234567890" [ intExpr(-5) .. 11 ] <> "1234567890" or
        "1234567890" [ intExpr(-5) .. 15 ] <> "1234567890" or
        "1234567890" [ intExpr( 0) .. -5 ] <> "" or
        "1234567890" [ intExpr( 0) ..  0 ] <> "" or
        "1234567890" [ intExpr( 0) ..  1 ] <> "1" or
        "1234567890" [ intExpr( 0) ..  5 ] <> "12345" or
        "1234567890" [ intExpr( 0) ..  9 ] <> "123456789" or
        "1234567890" [ intExpr( 0) .. 10 ] <> "1234567890" or
        "1234567890" [ intExpr( 0) .. 11 ] <> "1234567890" or
        "1234567890" [ intExpr( 0) .. 15 ] <> "1234567890" or
        "1234567890" [ intExpr( 1) .. -5 ] <> "" or
        "1234567890" [ intExpr( 1) ..  0 ] <> "" or
        "1234567890" [ intExpr( 1) ..  1 ] <> "1" or
        "1234567890" [ intExpr( 1) ..  5 ] <> "12345" or
        "1234567890" [ intExpr( 1) ..  9 ] <> "123456789" or
        "1234567890" [ intExpr( 1) .. 10 ] <> "1234567890" or
        "1234567890" [ intExpr( 1) .. 11 ] <> "1234567890" or
        "1234567890" [ intExpr( 1) .. 15 ] <> "1234567890" or
        "1234567890" [ intExpr( 5) .. -5 ] <> "" or
        "1234567890" [ intExpr( 5) ..  0 ] <> "" or
        "1234567890" [ intExpr( 5) ..  1 ] <> "" or
        "1234567890" [ intExpr( 5) ..  4 ] <> "" or
        "1234567890" [ intExpr( 5) ..  5 ] <> "5" or
        "1234567890" [ intExpr( 5) ..  6 ] <> "56" or
        "1234567890" [ intExpr( 5) ..  9 ] <> "56789" or
        "1234567890" [ intExpr( 5) .. 10 ] <> "567890" or
        "1234567890" [ intExpr( 5) .. 11 ] <> "567890" or
        "1234567890" [ intExpr( 5) .. 15 ] <> "567890" or
        "1234567890" [ intExpr(10) .. -5 ] <> "" or
        "1234567890" [ intExpr(10) ..  0 ] <> "" or
        "1234567890" [ intExpr(10) ..  1 ] <> "" or
        "1234567890" [ intExpr(10) ..  9 ] <> "" or
        "1234567890" [ intExpr(10) .. 10 ] <> "0" or
        "1234567890" [ intExpr(10) .. 11 ] <> "0" or
        "1234567890" [ intExpr(10) .. 15 ] <> "0" or
        "1234567890" [ intExpr(11) .. -5 ] <> "" or
        "1234567890" [ intExpr(11) ..  0 ] <> "" or
        "1234567890" [ intExpr(11) ..  1 ] <> "" or
        "1234567890" [ intExpr(11) ..  5 ] <> "" or
        "1234567890" [ intExpr(11) .. 10 ] <> "" or
        "1234567890" [ intExpr(11) .. 11 ] <> "" or
        "1234567890" [ intExpr(11) .. 15 ] <> "" or
        "1234567890" [ intExpr(15) .. -5 ] <> "" or
        "1234567890" [ intExpr(15) ..  0 ] <> "" or
        "1234567890" [ intExpr(15) ..  1 ] <> "" or
        "1234567890" [ intExpr(15) ..  5 ] <> "" or
        "1234567890" [ intExpr(15) .. 10 ] <> "" or
        "1234567890" [ intExpr(15) .. 11 ] <> "" or
        "1234567890" [ intExpr(15) .. 15 ] <> "" or
        "1234567890" [ intExpr(15) .. 20 ] <> "" or
        "" [ intExpr(-5) .. intExpr(-9) ] <> "" or
        "" [ intExpr(-5) .. intExpr(-6) ] <> "" or
        "" [ intExpr(-5) .. intExpr(-5) ] <> "" or
        "" [ intExpr(-5) .. intExpr(-4) ] <> "" or
        "" [ intExpr(-5) .. intExpr( 0) ] <> "" or
        "" [ intExpr(-5) .. intExpr( 1) ] <> "" or
        "" [ intExpr(-5) .. intExpr(15) ] <> "" or
        "" [ intExpr( 0) .. intExpr(-9) ] <> "" or
        "" [ intExpr( 0) .. intExpr(-1) ] <> "" or
        "" [ intExpr( 0) .. intExpr( 0) ] <> "" or
        "" [ intExpr( 0) .. intExpr( 1) ] <> "" or
        "" [ intExpr( 0) .. intExpr(15) ] <> "" or
        "" [ intExpr( 1) .. intExpr(-5) ] <> "" or
        "" [ intExpr( 1) .. intExpr( 0) ] <> "" or
        "" [ intExpr( 1) .. intExpr( 1) ] <> "" or
        "" [ intExpr( 1) .. intExpr( 2) ] <> "" or
        "" [ intExpr( 1) .. intExpr(15) ] <> "" or
        "" [ intExpr( 5) .. intExpr(-5) ] <> "" or
        "" [ intExpr( 5) .. intExpr( 0) ] <> "" or
        "" [ intExpr( 5) .. intExpr( 1) ] <> "" or
        "" [ intExpr( 5) .. intExpr( 4) ] <> "" or
        "" [ intExpr( 5) .. intExpr( 5) ] <> "" or
        "" [ intExpr( 5) .. intExpr( 6) ] <> "" or
        "" [ intExpr( 5) .. intExpr(15) ] <> "" or
        "1" [ intExpr(-5) .. intExpr(-9) ] <> "" or
        "1" [ intExpr(-5) .. intExpr(-5) ] <> "" or
        "1" [ intExpr(-5) .. intExpr( 0) ] <> "" or
        "1" [ intExpr(-5) .. intExpr( 1) ] <> "1" or
        "1" [ intExpr(-5) .. intExpr( 2) ] <> "1" or
        "1" [ intExpr(-5) .. intExpr(15) ] <> "1" or
        "1" [ intExpr( 0) .. intExpr(-5) ] <> "" or
        "1" [ intExpr( 0) .. intExpr( 0) ] <> "" or
        "1" [ intExpr( 0) .. intExpr( 1) ] <> "1" or
        "1" [ intExpr( 0) .. intExpr( 2) ] <> "1" or
        "1" [ intExpr( 0) .. intExpr(15) ] <> "1" or
        "1" [ intExpr( 1) .. intExpr(-5) ] <> "" or
        "1" [ intExpr( 1) .. intExpr( 0) ] <> "" or
        "1" [ intExpr( 1) .. intExpr( 1) ] <> "1" or
        "1" [ intExpr( 1) .. intExpr( 2) ] <> "1" or
        "1" [ intExpr( 1) .. intExpr(15) ] <> "1" or
        "1" [ intExpr( 5) .. intExpr(-5) ] <> "" or
        "1" [ intExpr( 5) .. intExpr( 0) ] <> "" or
        "1" [ intExpr( 5) .. intExpr( 1) ] <> "" or
        "1" [ intExpr( 5) .. intExpr( 4) ] <> "" or
        "1" [ intExpr( 5) .. intExpr( 5) ] <> "" or
        "1" [ intExpr( 5) .. intExpr( 6) ] <> "" or
        "1" [ intExpr( 5) .. intExpr(15) ] <> "" or
        "1234567890" [ intExpr(-5) .. intExpr(-9) ] <> "" or
        "1234567890" [ intExpr(-5) .. intExpr(-5) ] <> "" or
        "1234567890" [ intExpr(-5) .. intExpr( 0) ] <> "" or
        "1234567890" [ intExpr(-5) .. intExpr( 1) ] <> "1" or
        "1234567890" [ intExpr(-5) .. intExpr( 5) ] <> "12345" or
        "1234567890" [ intExpr(-5) .. intExpr( 9) ] <> "123456789" or
        "1234567890" [ intExpr(-5) .. intExpr(10) ] <> "1234567890" or
        "1234567890" [ intExpr(-5) .. intExpr(11) ] <> "1234567890" or
        "1234567890" [ intExpr(-5) .. intExpr(15) ] <> "1234567890" or
        "1234567890" [ intExpr( 0) .. intExpr(-5) ] <> "" or
        "1234567890" [ intExpr( 0) .. intExpr( 0) ] <> "" or
        "1234567890" [ intExpr( 0) .. intExpr( 1) ] <> "1" or
        "1234567890" [ intExpr( 0) .. intExpr( 5) ] <> "12345" or
        "1234567890" [ intExpr( 0) .. intExpr( 9) ] <> "123456789" or
        "1234567890" [ intExpr( 0) .. intExpr(10) ] <> "1234567890" or
        "1234567890" [ intExpr( 0) .. intExpr(11) ] <> "1234567890" or
        "1234567890" [ intExpr( 0) .. intExpr(15) ] <> "1234567890" or
        "1234567890" [ intExpr( 1) .. intExpr(-5) ] <> "" or
        "1234567890" [ intExpr( 1) .. intExpr( 0) ] <> "" or
        "1234567890" [ intExpr( 1) .. intExpr( 1) ] <> "1" or
        "1234567890" [ intExpr( 1) .. intExpr( 5) ] <> "12345" or
        "1234567890" [ intExpr( 1) .. intExpr( 9) ] <> "123456789" or
        "1234567890" [ intExpr( 1) .. intExpr(10) ] <> "1234567890" or
        "1234567890" [ intExpr( 1) .. intExpr(11) ] <> "1234567890" or
        "1234567890" [ intExpr( 1) .. intExpr(15) ] <> "1234567890" or
        "1234567890" [ intExpr( 5) .. intExpr(-5) ] <> "" or
        "1234567890" [ intExpr( 5) .. intExpr( 0) ] <> "" or
        "1234567890" [ intExpr( 5) .. intExpr( 1) ] <> "" or
        "1234567890" [ intExpr( 5) .. intExpr( 4) ] <> "" or
        "1234567890" [ intExpr( 5) .. intExpr( 5) ] <> "5" or
        "1234567890" [ intExpr( 5) .. intExpr( 6) ] <> "56" or
        "1234567890" [ intExpr( 5) .. intExpr( 9) ] <> "56789" or
        "1234567890" [ intExpr( 5) .. intExpr(10) ] <> "567890" or
        "1234567890" [ intExpr( 5) .. intExpr(11) ] <> "567890" or
        "1234567890" [ intExpr( 5) .. intExpr(15) ] <> "567890" or
        "1234567890" [ intExpr(10) .. intExpr(-5) ] <> "" or
        "1234567890" [ intExpr(10) .. intExpr( 0) ] <> "" or
        "1234567890" [ intExpr(10) .. intExpr( 1) ] <> "" or
        "1234567890" [ intExpr(10) .. intExpr( 9) ] <> "" or
        "1234567890" [ intExpr(10) .. intExpr(10) ] <> "0" or
        "1234567890" [ intExpr(10) .. intExpr(11) ] <> "0" or
        "1234567890" [ intExpr(10) .. intExpr(15) ] <> "0" or
        "1234567890" [ intExpr(11) .. intExpr(-5) ] <> "" or
        "1234567890" [ intExpr(11) .. intExpr( 0) ] <> "" or
        "1234567890" [ intExpr(11) .. intExpr( 1) ] <> "" or
        "1234567890" [ intExpr(11) .. intExpr( 5) ] <> "" or
        "1234567890" [ intExpr(11) .. intExpr(10) ] <> "" or
        "1234567890" [ intExpr(11) .. intExpr(11) ] <> "" or
        "1234567890" [ intExpr(11) .. intExpr(15) ] <> "" or
        "1234567890" [ intExpr(15) .. intExpr(-5) ] <> "" or
        "1234567890" [ intExpr(15) .. intExpr( 0) ] <> "" or
        "1234567890" [ intExpr(15) .. intExpr( 1) ] <> "" or
        "1234567890" [ intExpr(15) .. intExpr( 5) ] <> "" or
        "1234567890" [ intExpr(15) .. intExpr(10) ] <> "" or
        "1234567890" [ intExpr(15) .. intExpr(11) ] <> "" or
        "1234567890" [ intExpr(15) .. intExpr(15) ] <> "" or
        "1234567890" [ intExpr(15) .. intExpr(20) ] <> "" then
      writeln(" ***** STRING [ START .. STOP ] does not work correct. (1)");
      okay := FALSE;
    end if;

    if  striExpr("") [ -5 .. -9 ] <> "" or
        striExpr("") [ -5 .. -6 ] <> "" or
        striExpr("") [ -5 .. -5 ] <> "" or
        striExpr("") [ -5 .. -4 ] <> "" or
        striExpr("") [ -5 ..  0 ] <> "" or
        striExpr("") [ -5 ..  1 ] <> "" or
        striExpr("") [ -5 .. 15 ] <> "" or
        striExpr("") [  0 .. -9 ] <> "" or
        striExpr("") [  0 .. -1 ] <> "" or
        striExpr("") [  0 ..  0 ] <> "" or
        striExpr("") [  0 ..  1 ] <> "" or
        striExpr("") [  0 .. 15 ] <> "" or
        striExpr("") [  1 .. -5 ] <> "" or
        striExpr("") [  1 ..  0 ] <> "" or
        striExpr("") [  1 ..  1 ] <> "" or
        striExpr("") [  1 ..  2 ] <> "" or
        striExpr("") [  1 .. 15 ] <> "" or
        striExpr("") [  5 .. -5 ] <> "" or
        striExpr("") [  5 ..  0 ] <> "" or
        striExpr("") [  5 ..  1 ] <> "" or
        striExpr("") [  5 ..  4 ] <> "" or
        striExpr("") [  5 ..  5 ] <> "" or
        striExpr("") [  5 ..  6 ] <> "" or
        striExpr("") [  5 .. 15 ] <> "" or
        striExpr("1") [ -5 .. -9 ] <> "" or
        striExpr("1") [ -5 .. -5 ] <> "" or
        striExpr("1") [ -5 ..  0 ] <> "" or
        striExpr("1") [ -5 ..  1 ] <> "1" or
        striExpr("1") [ -5 ..  2 ] <> "1" or
        striExpr("1") [ -5 .. 15 ] <> "1" or
        striExpr("1") [  0 .. -5 ] <> "" or
        striExpr("1") [  0 ..  0 ] <> "" or
        striExpr("1") [  0 ..  1 ] <> "1" or
        striExpr("1") [  0 ..  2 ] <> "1" or
        striExpr("1") [  0 .. 15 ] <> "1" or
        striExpr("1") [  1 .. -5 ] <> "" or
        striExpr("1") [  1 ..  0 ] <> "" or
        striExpr("1") [  1 ..  1 ] <> "1" or
        striExpr("1") [  1 ..  2 ] <> "1" or
        striExpr("1") [  1 .. 15 ] <> "1" or
        striExpr("1") [  5 .. -5 ] <> "" or
        striExpr("1") [  5 ..  0 ] <> "" or
        striExpr("1") [  5 ..  1 ] <> "" or
        striExpr("1") [  5 ..  4 ] <> "" or
        striExpr("1") [  5 ..  5 ] <> "" or
        striExpr("1") [  5 ..  6 ] <> "" or
        striExpr("1") [  5 .. 15 ] <> "" or
        striExpr("1234567890") [ -5 .. -9 ] <> "" or
        striExpr("1234567890") [ -5 .. -5 ] <> "" or
        striExpr("1234567890") [ -5 ..  0 ] <> "" or
        striExpr("1234567890") [ -5 ..  1 ] <> "1" or
        striExpr("1234567890") [ -5 ..  5 ] <> "12345" or
        striExpr("1234567890") [ -5 ..  9 ] <> "123456789" or
        striExpr("1234567890") [ -5 .. 10 ] <> "1234567890" or
        striExpr("1234567890") [ -5 .. 11 ] <> "1234567890" or
        striExpr("1234567890") [ -5 .. 15 ] <> "1234567890" or
        striExpr("1234567890") [  0 .. -5 ] <> "" or
        striExpr("1234567890") [  0 ..  0 ] <> "" or
        striExpr("1234567890") [  0 ..  1 ] <> "1" or
        striExpr("1234567890") [  0 ..  5 ] <> "12345" or
        striExpr("1234567890") [  0 ..  9 ] <> "123456789" or
        striExpr("1234567890") [  0 .. 10 ] <> "1234567890" or
        striExpr("1234567890") [  0 .. 11 ] <> "1234567890" or
        striExpr("1234567890") [  0 .. 15 ] <> "1234567890" or
        striExpr("1234567890") [  1 .. -5 ] <> "" or
        striExpr("1234567890") [  1 ..  0 ] <> "" or
        striExpr("1234567890") [  1 ..  1 ] <> "1" or
        striExpr("1234567890") [  1 ..  5 ] <> "12345" or
        striExpr("1234567890") [  1 ..  9 ] <> "123456789" or
        striExpr("1234567890") [  1 .. 10 ] <> "1234567890" or
        striExpr("1234567890") [  1 .. 11 ] <> "1234567890" or
        striExpr("1234567890") [  1 .. 15 ] <> "1234567890" or
        striExpr("1234567890") [  5 .. -5 ] <> "" or
        striExpr("1234567890") [  5 ..  0 ] <> "" or
        striExpr("1234567890") [  5 ..  1 ] <> "" or
        striExpr("1234567890") [  5 ..  4 ] <> "" or
        striExpr("1234567890") [  5 ..  5 ] <> "5" or
        striExpr("1234567890") [  5 ..  6 ] <> "56" or
        striExpr("1234567890") [  5 ..  9 ] <> "56789" or
        striExpr("1234567890") [  5 .. 10 ] <> "567890" or
        striExpr("1234567890") [  5 .. 11 ] <> "567890" or
        striExpr("1234567890") [  5 .. 15 ] <> "567890" or
        striExpr("1234567890") [ 10 .. -5 ] <> "" or
        striExpr("1234567890") [ 10 ..  0 ] <> "" or
        striExpr("1234567890") [ 10 ..  1 ] <> "" or
        striExpr("1234567890") [ 10 ..  9 ] <> "" or
        striExpr("1234567890") [ 10 .. 10 ] <> "0" or
        striExpr("1234567890") [ 10 .. 11 ] <> "0" or
        striExpr("1234567890") [ 10 .. 15 ] <> "0" or
        striExpr("1234567890") [ 11 .. -5 ] <> "" or
        striExpr("1234567890") [ 11 ..  0 ] <> "" or
        striExpr("1234567890") [ 11 ..  1 ] <> "" or
        striExpr("1234567890") [ 11 ..  5 ] <> "" or
        striExpr("1234567890") [ 11 .. 10 ] <> "" or
        striExpr("1234567890") [ 11 .. 11 ] <> "" or
        striExpr("1234567890") [ 11 .. 15 ] <> "" or
        striExpr("1234567890") [ 15 .. -5 ] <> "" or
        striExpr("1234567890") [ 15 ..  0 ] <> "" or
        striExpr("1234567890") [ 15 ..  1 ] <> "" or
        striExpr("1234567890") [ 15 ..  5 ] <> "" or
        striExpr("1234567890") [ 15 .. 10 ] <> "" or
        striExpr("1234567890") [ 15 .. 11 ] <> "" or
        striExpr("1234567890") [ 15 .. 15 ] <> "" or
        striExpr("1234567890") [ 15 .. 20 ] <> "" or
        striExpr("") [ -5 .. intExpr(-9) ] <> "" or
        striExpr("") [ -5 .. intExpr(-6) ] <> "" or
        striExpr("") [ -5 .. intExpr(-5) ] <> "" or
        striExpr("") [ -5 .. intExpr(-4) ] <> "" or
        striExpr("") [ -5 .. intExpr( 0) ] <> "" or
        striExpr("") [ -5 .. intExpr( 1) ] <> "" or
        striExpr("") [ -5 .. intExpr(15) ] <> "" or
        striExpr("") [  0 .. intExpr(-9) ] <> "" or
        striExpr("") [  0 .. intExpr(-1) ] <> "" or
        striExpr("") [  0 .. intExpr( 0) ] <> "" or
        striExpr("") [  0 .. intExpr( 1) ] <> "" or
        striExpr("") [  0 .. intExpr(15) ] <> "" or
        striExpr("") [  1 .. intExpr(-5) ] <> "" or
        striExpr("") [  1 .. intExpr( 0) ] <> "" or
        striExpr("") [  1 .. intExpr( 1) ] <> "" or
        striExpr("") [  1 .. intExpr( 2) ] <> "" or
        striExpr("") [  1 .. intExpr(15) ] <> "" or
        striExpr("") [  5 .. intExpr(-5) ] <> "" or
        striExpr("") [  5 .. intExpr( 0) ] <> "" or
        striExpr("") [  5 .. intExpr( 1) ] <> "" or
        striExpr("") [  5 .. intExpr( 4) ] <> "" or
        striExpr("") [  5 .. intExpr( 5) ] <> "" or
        striExpr("") [  5 .. intExpr( 6) ] <> "" or
        striExpr("") [  5 .. intExpr(15) ] <> "" or
        striExpr("1") [ -5 .. intExpr(-9) ] <> "" or
        striExpr("1") [ -5 .. intExpr(-5) ] <> "" or
        striExpr("1") [ -5 .. intExpr( 0) ] <> "" or
        striExpr("1") [ -5 .. intExpr( 1) ] <> "1" or
        striExpr("1") [ -5 .. intExpr( 2) ] <> "1" or
        striExpr("1") [ -5 .. intExpr(15) ] <> "1" or
        striExpr("1") [  0 .. intExpr(-5) ] <> "" or
        striExpr("1") [  0 .. intExpr( 0) ] <> "" or
        striExpr("1") [  0 .. intExpr( 1) ] <> "1" or
        striExpr("1") [  0 .. intExpr( 2) ] <> "1" or
        striExpr("1") [  0 .. intExpr(15) ] <> "1" or
        striExpr("1") [  1 .. intExpr(-5) ] <> "" or
        striExpr("1") [  1 .. intExpr( 0) ] <> "" or
        striExpr("1") [  1 .. intExpr( 1) ] <> "1" or
        striExpr("1") [  1 .. intExpr( 2) ] <> "1" or
        striExpr("1") [  1 .. intExpr(15) ] <> "1" or
        striExpr("1") [  5 .. intExpr(-5) ] <> "" or
        striExpr("1") [  5 .. intExpr( 0) ] <> "" or
        striExpr("1") [  5 .. intExpr( 1) ] <> "" or
        striExpr("1") [  5 .. intExpr( 4) ] <> "" or
        striExpr("1") [  5 .. intExpr( 5) ] <> "" or
        striExpr("1") [  5 .. intExpr( 6) ] <> "" or
        striExpr("1") [  5 .. intExpr(15) ] <> "" or
        striExpr("1234567890") [ -5 .. intExpr(-9) ] <> "" or
        striExpr("1234567890") [ -5 .. intExpr(-5) ] <> "" or
        striExpr("1234567890") [ -5 .. intExpr( 0) ] <> "" or
        striExpr("1234567890") [ -5 .. intExpr( 1) ] <> "1" or
        striExpr("1234567890") [ -5 .. intExpr( 5) ] <> "12345" or
        striExpr("1234567890") [ -5 .. intExpr( 9) ] <> "123456789" or
        striExpr("1234567890") [ -5 .. intExpr(10) ] <> "1234567890" or
        striExpr("1234567890") [ -5 .. intExpr(11) ] <> "1234567890" or
        striExpr("1234567890") [ -5 .. intExpr(15) ] <> "1234567890" or
        striExpr("1234567890") [  0 .. intExpr(-5) ] <> "" or
        striExpr("1234567890") [  0 .. intExpr( 0) ] <> "" or
        striExpr("1234567890") [  0 .. intExpr( 1) ] <> "1" or
        striExpr("1234567890") [  0 .. intExpr( 5) ] <> "12345" or
        striExpr("1234567890") [  0 .. intExpr( 9) ] <> "123456789" or
        striExpr("1234567890") [  0 .. intExpr(10) ] <> "1234567890" or
        striExpr("1234567890") [  0 .. intExpr(11) ] <> "1234567890" or
        striExpr("1234567890") [  0 .. intExpr(15) ] <> "1234567890" or
        striExpr("1234567890") [  1 .. intExpr(-5) ] <> "" or
        striExpr("1234567890") [  1 .. intExpr( 0) ] <> "" or
        striExpr("1234567890") [  1 .. intExpr( 1) ] <> "1" or
        striExpr("1234567890") [  1 .. intExpr( 5) ] <> "12345" or
        striExpr("1234567890") [  1 .. intExpr( 9) ] <> "123456789" or
        striExpr("1234567890") [  1 .. intExpr(10) ] <> "1234567890" or
        striExpr("1234567890") [  1 .. intExpr(11) ] <> "1234567890" or
        striExpr("1234567890") [  1 .. intExpr(15) ] <> "1234567890" or
        striExpr("1234567890") [  5 .. intExpr(-5) ] <> "" or
        striExpr("1234567890") [  5 .. intExpr( 0) ] <> "" or
        striExpr("1234567890") [  5 .. intExpr( 1) ] <> "" or
        striExpr("1234567890") [  5 .. intExpr( 4) ] <> "" or
        striExpr("1234567890") [  5 .. intExpr( 5) ] <> "5" or
        striExpr("1234567890") [  5 .. intExpr( 6) ] <> "56" or
        striExpr("1234567890") [  5 .. intExpr( 9) ] <> "56789" or
        striExpr("1234567890") [  5 .. intExpr(10) ] <> "567890" or
        striExpr("1234567890") [  5 .. intExpr(11) ] <> "567890" or
        striExpr("1234567890") [  5 .. intExpr(15) ] <> "567890" or
        striExpr("1234567890") [ 10 .. intExpr(-5) ] <> "" or
        striExpr("1234567890") [ 10 .. intExpr( 0) ] <> "" or
        striExpr("1234567890") [ 10 .. intExpr( 1) ] <> "" or
        striExpr("1234567890") [ 10 .. intExpr( 9) ] <> "" or
        striExpr("1234567890") [ 10 .. intExpr(10) ] <> "0" or
        striExpr("1234567890") [ 10 .. intExpr(11) ] <> "0" or
        striExpr("1234567890") [ 10 .. intExpr(15) ] <> "0" or
        striExpr("1234567890") [ 11 .. intExpr(-5) ] <> "" or
        striExpr("1234567890") [ 11 .. intExpr( 0) ] <> "" or
        striExpr("1234567890") [ 11 .. intExpr( 1) ] <> "" or
        striExpr("1234567890") [ 11 .. intExpr( 5) ] <> "" or
        striExpr("1234567890") [ 11 .. intExpr(10) ] <> "" or
        striExpr("1234567890") [ 11 .. intExpr(11) ] <> "" or
        striExpr("1234567890") [ 11 .. intExpr(15) ] <> "" or
        striExpr("1234567890") [ 15 .. intExpr(-5) ] <> "" or
        striExpr("1234567890") [ 15 .. intExpr( 0) ] <> "" or
        striExpr("1234567890") [ 15 .. intExpr( 1) ] <> "" or
        striExpr("1234567890") [ 15 .. intExpr( 5) ] <> "" or
        striExpr("1234567890") [ 15 .. intExpr(10) ] <> "" or
        striExpr("1234567890") [ 15 .. intExpr(11) ] <> "" or
        striExpr("1234567890") [ 15 .. intExpr(15) ] <> "" or
        striExpr("1234567890") [ 15 .. intExpr(20) ] <> "" or
        striExpr("") [ intExpr(-5) .. -9 ] <> "" or
        striExpr("") [ intExpr(-5) .. -6 ] <> "" or
        striExpr("") [ intExpr(-5) .. -5 ] <> "" or
        striExpr("") [ intExpr(-5) .. -4 ] <> "" or
        striExpr("") [ intExpr(-5) ..  0 ] <> "" or
        striExpr("") [ intExpr(-5) ..  1 ] <> "" or
        striExpr("") [ intExpr(-5) .. 15 ] <> "" or
        striExpr("") [ intExpr( 0) .. -9 ] <> "" or
        striExpr("") [ intExpr( 0) .. -1 ] <> "" or
        striExpr("") [ intExpr( 0) ..  0 ] <> "" or
        striExpr("") [ intExpr( 0) ..  1 ] <> "" or
        striExpr("") [ intExpr( 0) .. 15 ] <> "" or
        striExpr("") [ intExpr( 1) .. -5 ] <> "" or
        striExpr("") [ intExpr( 1) ..  0 ] <> "" or
        striExpr("") [ intExpr( 1) ..  1 ] <> "" or
        striExpr("") [ intExpr( 1) ..  2 ] <> "" or
        striExpr("") [ intExpr( 1) .. 15 ] <> "" or
        striExpr("") [ intExpr( 5) .. -5 ] <> "" or
        striExpr("") [ intExpr( 5) ..  0 ] <> "" or
        striExpr("") [ intExpr( 5) ..  1 ] <> "" or
        striExpr("") [ intExpr( 5) ..  4 ] <> "" or
        striExpr("") [ intExpr( 5) ..  5 ] <> "" or
        striExpr("") [ intExpr( 5) ..  6 ] <> "" or
        striExpr("") [ intExpr( 5) .. 15 ] <> "" or
        striExpr("1") [ intExpr(-5) .. -9 ] <> "" or
        striExpr("1") [ intExpr(-5) .. -5 ] <> "" or
        striExpr("1") [ intExpr(-5) ..  0 ] <> "" or
        striExpr("1") [ intExpr(-5) ..  1 ] <> "1" or
        striExpr("1") [ intExpr(-5) ..  2 ] <> "1" or
        striExpr("1") [ intExpr(-5) .. 15 ] <> "1" or
        striExpr("1") [ intExpr( 0) .. -5 ] <> "" or
        striExpr("1") [ intExpr( 0) ..  0 ] <> "" or
        striExpr("1") [ intExpr( 0) ..  1 ] <> "1" or
        striExpr("1") [ intExpr( 0) ..  2 ] <> "1" or
        striExpr("1") [ intExpr( 0) .. 15 ] <> "1" or
        striExpr("1") [ intExpr( 1) .. -5 ] <> "" or
        striExpr("1") [ intExpr( 1) ..  0 ] <> "" or
        striExpr("1") [ intExpr( 1) ..  1 ] <> "1" or
        striExpr("1") [ intExpr( 1) ..  2 ] <> "1" or
        striExpr("1") [ intExpr( 1) .. 15 ] <> "1" or
        striExpr("1") [ intExpr( 5) .. -5 ] <> "" or
        striExpr("1") [ intExpr( 5) ..  0 ] <> "" or
        striExpr("1") [ intExpr( 5) ..  1 ] <> "" or
        striExpr("1") [ intExpr( 5) ..  4 ] <> "" or
        striExpr("1") [ intExpr( 5) ..  5 ] <> "" or
        striExpr("1") [ intExpr( 5) ..  6 ] <> "" or
        striExpr("1") [ intExpr( 5) .. 15 ] <> "" or
        striExpr("1234567890") [ intExpr(-5) .. -9 ] <> "" or
        striExpr("1234567890") [ intExpr(-5) .. -5 ] <> "" or
        striExpr("1234567890") [ intExpr(-5) ..  0 ] <> "" or
        striExpr("1234567890") [ intExpr(-5) ..  1 ] <> "1" or
        striExpr("1234567890") [ intExpr(-5) ..  5 ] <> "12345" or
        striExpr("1234567890") [ intExpr(-5) ..  9 ] <> "123456789" or
        striExpr("1234567890") [ intExpr(-5) .. 10 ] <> "1234567890" or
        striExpr("1234567890") [ intExpr(-5) .. 11 ] <> "1234567890" or
        striExpr("1234567890") [ intExpr(-5) .. 15 ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 0) .. -5 ] <> "" or
        striExpr("1234567890") [ intExpr( 0) ..  0 ] <> "" or
        striExpr("1234567890") [ intExpr( 0) ..  1 ] <> "1" or
        striExpr("1234567890") [ intExpr( 0) ..  5 ] <> "12345" or
        striExpr("1234567890") [ intExpr( 0) ..  9 ] <> "123456789" or
        striExpr("1234567890") [ intExpr( 0) .. 10 ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 0) .. 11 ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 0) .. 15 ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 1) .. -5 ] <> "" or
        striExpr("1234567890") [ intExpr( 1) ..  0 ] <> "" or
        striExpr("1234567890") [ intExpr( 1) ..  1 ] <> "1" or
        striExpr("1234567890") [ intExpr( 1) ..  5 ] <> "12345" or
        striExpr("1234567890") [ intExpr( 1) ..  9 ] <> "123456789" or
        striExpr("1234567890") [ intExpr( 1) .. 10 ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 1) .. 11 ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 1) .. 15 ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 5) .. -5 ] <> "" or
        striExpr("1234567890") [ intExpr( 5) ..  0 ] <> "" or
        striExpr("1234567890") [ intExpr( 5) ..  1 ] <> "" or
        striExpr("1234567890") [ intExpr( 5) ..  4 ] <> "" or
        striExpr("1234567890") [ intExpr( 5) ..  5 ] <> "5" or
        striExpr("1234567890") [ intExpr( 5) ..  6 ] <> "56" or
        striExpr("1234567890") [ intExpr( 5) ..  9 ] <> "56789" or
        striExpr("1234567890") [ intExpr( 5) .. 10 ] <> "567890" or
        striExpr("1234567890") [ intExpr( 5) .. 11 ] <> "567890" or
        striExpr("1234567890") [ intExpr( 5) .. 15 ] <> "567890" or
        striExpr("1234567890") [ intExpr(10) .. -5 ] <> "" or
        striExpr("1234567890") [ intExpr(10) ..  0 ] <> "" or
        striExpr("1234567890") [ intExpr(10) ..  1 ] <> "" or
        striExpr("1234567890") [ intExpr(10) ..  9 ] <> "" or
        striExpr("1234567890") [ intExpr(10) .. 10 ] <> "0" or
        striExpr("1234567890") [ intExpr(10) .. 11 ] <> "0" or
        striExpr("1234567890") [ intExpr(10) .. 15 ] <> "0" or
        striExpr("1234567890") [ intExpr(11) .. -5 ] <> "" or
        striExpr("1234567890") [ intExpr(11) ..  0 ] <> "" or
        striExpr("1234567890") [ intExpr(11) ..  1 ] <> "" or
        striExpr("1234567890") [ intExpr(11) ..  5 ] <> "" or
        striExpr("1234567890") [ intExpr(11) .. 10 ] <> "" or
        striExpr("1234567890") [ intExpr(11) .. 11 ] <> "" or
        striExpr("1234567890") [ intExpr(11) .. 15 ] <> "" or
        striExpr("1234567890") [ intExpr(15) .. -5 ] <> "" or
        striExpr("1234567890") [ intExpr(15) ..  0 ] <> "" or
        striExpr("1234567890") [ intExpr(15) ..  1 ] <> "" or
        striExpr("1234567890") [ intExpr(15) ..  5 ] <> "" or
        striExpr("1234567890") [ intExpr(15) .. 10 ] <> "" or
        striExpr("1234567890") [ intExpr(15) .. 11 ] <> "" or
        striExpr("1234567890") [ intExpr(15) .. 15 ] <> "" or
        striExpr("1234567890") [ intExpr(15) .. 20 ] <> "" or
        striExpr("") [ intExpr(-5) .. intExpr(-9) ] <> "" or
        striExpr("") [ intExpr(-5) .. intExpr(-6) ] <> "" or
        striExpr("") [ intExpr(-5) .. intExpr(-5) ] <> "" or
        striExpr("") [ intExpr(-5) .. intExpr(-4) ] <> "" or
        striExpr("") [ intExpr(-5) .. intExpr( 0) ] <> "" or
        striExpr("") [ intExpr(-5) .. intExpr( 1) ] <> "" or
        striExpr("") [ intExpr(-5) .. intExpr(15) ] <> "" or
        striExpr("") [ intExpr( 0) .. intExpr(-9) ] <> "" or
        striExpr("") [ intExpr( 0) .. intExpr(-1) ] <> "" or
        striExpr("") [ intExpr( 0) .. intExpr( 0) ] <> "" or
        striExpr("") [ intExpr( 0) .. intExpr( 1) ] <> "" or
        striExpr("") [ intExpr( 0) .. intExpr(15) ] <> "" or
        striExpr("") [ intExpr( 1) .. intExpr(-5) ] <> "" or
        striExpr("") [ intExpr( 1) .. intExpr( 0) ] <> "" or
        striExpr("") [ intExpr( 1) .. intExpr( 1) ] <> "" or
        striExpr("") [ intExpr( 1) .. intExpr( 2) ] <> "" or
        striExpr("") [ intExpr( 1) .. intExpr(15) ] <> "" or
        striExpr("") [ intExpr( 5) .. intExpr(-5) ] <> "" or
        striExpr("") [ intExpr( 5) .. intExpr( 0) ] <> "" or
        striExpr("") [ intExpr( 5) .. intExpr( 1) ] <> "" or
        striExpr("") [ intExpr( 5) .. intExpr( 4) ] <> "" or
        striExpr("") [ intExpr( 5) .. intExpr( 5) ] <> "" or
        striExpr("") [ intExpr( 5) .. intExpr( 6) ] <> "" or
        striExpr("") [ intExpr( 5) .. intExpr(15) ] <> "" or
        striExpr("1") [ intExpr(-5) .. intExpr(-9) ] <> "" or
        striExpr("1") [ intExpr(-5) .. intExpr(-5) ] <> "" or
        striExpr("1") [ intExpr(-5) .. intExpr( 0) ] <> "" or
        striExpr("1") [ intExpr(-5) .. intExpr( 1) ] <> "1" or
        striExpr("1") [ intExpr(-5) .. intExpr( 2) ] <> "1" or
        striExpr("1") [ intExpr(-5) .. intExpr(15) ] <> "1" or
        striExpr("1") [ intExpr( 0) .. intExpr(-5) ] <> "" or
        striExpr("1") [ intExpr( 0) .. intExpr( 0) ] <> "" or
        striExpr("1") [ intExpr( 0) .. intExpr( 1) ] <> "1" or
        striExpr("1") [ intExpr( 0) .. intExpr( 2) ] <> "1" or
        striExpr("1") [ intExpr( 0) .. intExpr(15) ] <> "1" or
        striExpr("1") [ intExpr( 1) .. intExpr(-5) ] <> "" or
        striExpr("1") [ intExpr( 1) .. intExpr( 0) ] <> "" or
        striExpr("1") [ intExpr( 1) .. intExpr( 1) ] <> "1" or
        striExpr("1") [ intExpr( 1) .. intExpr( 2) ] <> "1" or
        striExpr("1") [ intExpr( 1) .. intExpr(15) ] <> "1" or
        striExpr("1") [ intExpr( 5) .. intExpr(-5) ] <> "" or
        striExpr("1") [ intExpr( 5) .. intExpr( 0) ] <> "" or
        striExpr("1") [ intExpr( 5) .. intExpr( 1) ] <> "" or
        striExpr("1") [ intExpr( 5) .. intExpr( 4) ] <> "" or
        striExpr("1") [ intExpr( 5) .. intExpr( 5) ] <> "" or
        striExpr("1") [ intExpr( 5) .. intExpr( 6) ] <> "" or
        striExpr("1") [ intExpr( 5) .. intExpr(15) ] <> "" or
        striExpr("1234567890") [ intExpr(-5) .. intExpr(-9) ] <> "" or
        striExpr("1234567890") [ intExpr(-5) .. intExpr(-5) ] <> "" or
        striExpr("1234567890") [ intExpr(-5) .. intExpr( 0) ] <> "" or
        striExpr("1234567890") [ intExpr(-5) .. intExpr( 1) ] <> "1" or
        striExpr("1234567890") [ intExpr(-5) .. intExpr( 5) ] <> "12345" or
        striExpr("1234567890") [ intExpr(-5) .. intExpr( 9) ] <> "123456789" or
        striExpr("1234567890") [ intExpr(-5) .. intExpr(10) ] <> "1234567890" or
        striExpr("1234567890") [ intExpr(-5) .. intExpr(11) ] <> "1234567890" or
        striExpr("1234567890") [ intExpr(-5) .. intExpr(15) ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 0) .. intExpr(-5) ] <> "" or
        striExpr("1234567890") [ intExpr( 0) .. intExpr( 0) ] <> "" or
        striExpr("1234567890") [ intExpr( 0) .. intExpr( 1) ] <> "1" or
        striExpr("1234567890") [ intExpr( 0) .. intExpr( 5) ] <> "12345" or
        striExpr("1234567890") [ intExpr( 0) .. intExpr( 9) ] <> "123456789" or
        striExpr("1234567890") [ intExpr( 0) .. intExpr(10) ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 0) .. intExpr(11) ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 0) .. intExpr(15) ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 1) .. intExpr(-5) ] <> "" or
        striExpr("1234567890") [ intExpr( 1) .. intExpr( 0) ] <> "" or
        striExpr("1234567890") [ intExpr( 1) .. intExpr( 1) ] <> "1" or
        striExpr("1234567890") [ intExpr( 1) .. intExpr( 5) ] <> "12345" or
        striExpr("1234567890") [ intExpr( 1) .. intExpr( 9) ] <> "123456789" or
        striExpr("1234567890") [ intExpr( 1) .. intExpr(10) ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 1) .. intExpr(11) ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 1) .. intExpr(15) ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 5) .. intExpr(-5) ] <> "" or
        striExpr("1234567890") [ intExpr( 5) .. intExpr( 0) ] <> "" or
        striExpr("1234567890") [ intExpr( 5) .. intExpr( 1) ] <> "" or
        striExpr("1234567890") [ intExpr( 5) .. intExpr( 4) ] <> "" or
        striExpr("1234567890") [ intExpr( 5) .. intExpr( 5) ] <> "5" or
        striExpr("1234567890") [ intExpr( 5) .. intExpr( 6) ] <> "56" or
        striExpr("1234567890") [ intExpr( 5) .. intExpr( 9) ] <> "56789" or
        striExpr("1234567890") [ intExpr( 5) .. intExpr(10) ] <> "567890" or
        striExpr("1234567890") [ intExpr( 5) .. intExpr(11) ] <> "567890" or
        striExpr("1234567890") [ intExpr( 5) .. intExpr(15) ] <> "567890" or
        striExpr("1234567890") [ intExpr(10) .. intExpr(-5) ] <> "" or
        striExpr("1234567890") [ intExpr(10) .. intExpr( 0) ] <> "" or
        striExpr("1234567890") [ intExpr(10) .. intExpr( 1) ] <> "" or
        striExpr("1234567890") [ intExpr(10) .. intExpr( 9) ] <> "" or
        striExpr("1234567890") [ intExpr(10) .. intExpr(10) ] <> "0" or
        striExpr("1234567890") [ intExpr(10) .. intExpr(11) ] <> "0" or
        striExpr("1234567890") [ intExpr(10) .. intExpr(15) ] <> "0" or
        striExpr("1234567890") [ intExpr(11) .. intExpr(-5) ] <> "" or
        striExpr("1234567890") [ intExpr(11) .. intExpr( 0) ] <> "" or
        striExpr("1234567890") [ intExpr(11) .. intExpr( 1) ] <> "" or
        striExpr("1234567890") [ intExpr(11) .. intExpr( 5) ] <> "" or
        striExpr("1234567890") [ intExpr(11) .. intExpr(10) ] <> "" or
        striExpr("1234567890") [ intExpr(11) .. intExpr(11) ] <> "" or
        striExpr("1234567890") [ intExpr(11) .. intExpr(15) ] <> "" or
        striExpr("1234567890") [ intExpr(15) .. intExpr(-5) ] <> "" or
        striExpr("1234567890") [ intExpr(15) .. intExpr( 0) ] <> "" or
        striExpr("1234567890") [ intExpr(15) .. intExpr( 1) ] <> "" or
        striExpr("1234567890") [ intExpr(15) .. intExpr( 5) ] <> "" or
        striExpr("1234567890") [ intExpr(15) .. intExpr(10) ] <> "" or
        striExpr("1234567890") [ intExpr(15) .. intExpr(11) ] <> "" or
        striExpr("1234567890") [ intExpr(15) .. intExpr(15) ] <> "" or
        striExpr("1234567890") [ intExpr(15) .. intExpr(20) ] <> "" then
      writeln(" ***** STRING [ START .. STOP ] does not work correct. (2)");
      okay := FALSE;
    end if;

    stri := "" [ -5 .. -9 ]; ok := ok and stri = "";
    stri := "" [ -5 .. -6 ]; ok := ok and stri = "";
    stri := "" [ -5 .. -5 ]; ok := ok and stri = "";
    stri := "" [ -5 .. -4 ]; ok := ok and stri = "";
    stri := "" [ -5 ..  0 ]; ok := ok and stri = "";
    stri := "" [ -5 ..  1 ]; ok := ok and stri = "";
    stri := "" [ -5 .. 15 ]; ok := ok and stri = "";
    stri := "" [  0 .. -9 ]; ok := ok and stri = "";
    stri := "" [  0 .. -1 ]; ok := ok and stri = "";
    stri := "" [  0 ..  0 ]; ok := ok and stri = "";
    stri := "" [  0 ..  1 ]; ok := ok and stri = "";
    stri := "" [  0 .. 15 ]; ok := ok and stri = "";
    stri := "" [  1 .. -5 ]; ok := ok and stri = "";
    stri := "" [  1 ..  0 ]; ok := ok and stri = "";
    stri := "" [  1 ..  1 ]; ok := ok and stri = "";
    stri := "" [  1 ..  2 ]; ok := ok and stri = "";
    stri := "" [  1 .. 15 ]; ok := ok and stri = "";
    stri := "" [  5 .. -5 ]; ok := ok and stri = "";
    stri := "" [  5 ..  0 ]; ok := ok and stri = "";
    stri := "" [  5 ..  1 ]; ok := ok and stri = "";
    stri := "" [  5 ..  4 ]; ok := ok and stri = "";
    stri := "" [  5 ..  5 ]; ok := ok and stri = "";
    stri := "" [  5 ..  6 ]; ok := ok and stri = "";
    stri := "" [  5 .. 15 ]; ok := ok and stri = "";
    stri := "1" [ -5 .. -9 ]; ok := ok and stri = "";
    stri := "1" [ -5 .. -5 ]; ok := ok and stri = "";
    stri := "1" [ -5 ..  0 ]; ok := ok and stri = "";
    stri := "1" [ -5 ..  1 ]; ok := ok and stri = "1";
    stri := "1" [ -5 ..  2 ]; ok := ok and stri = "1";
    stri := "1" [ -5 .. 15 ]; ok := ok and stri = "1";
    stri := "1" [  0 .. -5 ]; ok := ok and stri = "";
    stri := "1" [  0 ..  0 ]; ok := ok and stri = "";
    stri := "1" [  0 ..  1 ]; ok := ok and stri = "1";
    stri := "1" [  0 ..  2 ]; ok := ok and stri = "1";
    stri := "1" [  0 .. 15 ]; ok := ok and stri = "1";
    stri := "1" [  1 .. -5 ]; ok := ok and stri = "";
    stri := "1" [  1 ..  0 ]; ok := ok and stri = "";
    stri := "1" [  1 ..  1 ]; ok := ok and stri = "1";
    stri := "1" [  1 ..  2 ]; ok := ok and stri = "1";
    stri := "1" [  1 .. 15 ]; ok := ok and stri = "1";
    stri := "1" [  5 .. -5 ]; ok := ok and stri = "";
    stri := "1" [  5 ..  0 ]; ok := ok and stri = "";
    stri := "1" [  5 ..  1 ]; ok := ok and stri = "";
    stri := "1" [  5 ..  4 ]; ok := ok and stri = "";
    stri := "1" [  5 ..  5 ]; ok := ok and stri = "";
    stri := "1" [  5 ..  6 ]; ok := ok and stri = "";
    stri := "1" [  5 .. 15 ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 .. -9 ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 .. -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 ..  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 ..  1 ]; ok := ok and stri = "1";
    stri := "1234567890" [ -5 ..  5 ]; ok := ok and stri = "12345";
    stri := "1234567890" [ -5 ..  9 ]; ok := ok and stri = "123456789";
    stri := "1234567890" [ -5 .. 10 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ -5 .. 11 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ -5 .. 15 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  0 .. -5 ]; ok := ok and stri = "";
    stri := "1234567890" [  0 ..  0 ]; ok := ok and stri = "";
    stri := "1234567890" [  0 ..  1 ]; ok := ok and stri = "1";
    stri := "1234567890" [  0 ..  5 ]; ok := ok and stri = "12345";
    stri := "1234567890" [  0 ..  9 ]; ok := ok and stri = "123456789";
    stri := "1234567890" [  0 .. 10 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  0 .. 11 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  0 .. 15 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  1 .. -5 ]; ok := ok and stri = "";
    stri := "1234567890" [  1 ..  0 ]; ok := ok and stri = "";
    stri := "1234567890" [  1 ..  1 ]; ok := ok and stri = "1";
    stri := "1234567890" [  1 ..  5 ]; ok := ok and stri = "12345";
    stri := "1234567890" [  1 ..  9 ]; ok := ok and stri = "123456789";
    stri := "1234567890" [  1 .. 10 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  1 .. 11 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  1 .. 15 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  5 .. -5 ]; ok := ok and stri = "";
    stri := "1234567890" [  5 ..  0 ]; ok := ok and stri = "";
    stri := "1234567890" [  5 ..  1 ]; ok := ok and stri = "";
    stri := "1234567890" [  5 ..  4 ]; ok := ok and stri = "";
    stri := "1234567890" [  5 ..  5 ]; ok := ok and stri = "5";
    stri := "1234567890" [  5 ..  6 ]; ok := ok and stri = "56";
    stri := "1234567890" [  5 ..  9 ]; ok := ok and stri = "56789";
    stri := "1234567890" [  5 .. 10 ]; ok := ok and stri = "567890";
    stri := "1234567890" [  5 .. 11 ]; ok := ok and stri = "567890";
    stri := "1234567890" [  5 .. 15 ]; ok := ok and stri = "567890";
    stri := "1234567890" [ 10 .. -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ 10 ..  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ 10 ..  1 ]; ok := ok and stri = "";
    stri := "1234567890" [ 10 ..  9 ]; ok := ok and stri = "";
    stri := "1234567890" [ 10 .. 10 ]; ok := ok and stri = "0";
    stri := "1234567890" [ 10 .. 11 ]; ok := ok and stri = "0";
    stri := "1234567890" [ 10 .. 15 ]; ok := ok and stri = "0";
    stri := "1234567890" [ 11 .. -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 ..  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 ..  1 ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 ..  5 ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 .. 10 ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 .. 11 ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 .. 15 ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 .. -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 ..  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 ..  1 ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 ..  5 ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 .. 10 ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 .. 11 ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 .. 15 ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 .. 20 ]; ok := ok and stri = "";
    stri := "" [ -5 .. intExpr(-9) ]; ok := ok and stri = "";
    stri := "" [ -5 .. intExpr(-6) ]; ok := ok and stri = "";
    stri := "" [ -5 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "" [ -5 .. intExpr(-4) ]; ok := ok and stri = "";
    stri := "" [ -5 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [ -5 .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [ -5 .. intExpr(15) ]; ok := ok and stri = "";
    stri := "" [  0 .. intExpr(-9) ]; ok := ok and stri = "";
    stri := "" [  0 .. intExpr(-1) ]; ok := ok and stri = "";
    stri := "" [  0 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [  0 .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [  0 .. intExpr(15) ]; ok := ok and stri = "";
    stri := "" [  1 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "" [  1 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [  1 .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [  1 .. intExpr( 2) ]; ok := ok and stri = "";
    stri := "" [  1 .. intExpr(15) ]; ok := ok and stri = "";
    stri := "" [  5 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "" [  5 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [  5 .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [  5 .. intExpr( 4) ]; ok := ok and stri = "";
    stri := "" [  5 .. intExpr( 5) ]; ok := ok and stri = "";
    stri := "" [  5 .. intExpr( 6) ]; ok := ok and stri = "";
    stri := "" [  5 .. intExpr(15) ]; ok := ok and stri = "";
    stri := "1" [ -5 .. intExpr(-9) ]; ok := ok and stri = "";
    stri := "1" [ -5 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [ -5 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [ -5 .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := "1" [ -5 .. intExpr( 2) ]; ok := ok and stri = "1";
    stri := "1" [ -5 .. intExpr(15) ]; ok := ok and stri = "1";
    stri := "1" [  0 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [  0 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [  0 .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := "1" [  0 .. intExpr( 2) ]; ok := ok and stri = "1";
    stri := "1" [  0 .. intExpr(15) ]; ok := ok and stri = "1";
    stri := "1" [  1 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [  1 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [  1 .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := "1" [  1 .. intExpr( 2) ]; ok := ok and stri = "1";
    stri := "1" [  1 .. intExpr(15) ]; ok := ok and stri = "1";
    stri := "1" [  5 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [  5 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [  5 .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "1" [  5 .. intExpr( 4) ]; ok := ok and stri = "";
    stri := "1" [  5 .. intExpr( 5) ]; ok := ok and stri = "";
    stri := "1" [  5 .. intExpr( 6) ]; ok := ok and stri = "";
    stri := "1" [  5 .. intExpr(15) ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 .. intExpr(-9) ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := "1234567890" [ -5 .. intExpr( 5) ]; ok := ok and stri = "12345";
    stri := "1234567890" [ -5 .. intExpr( 9) ]; ok := ok and stri = "123456789";
    stri := "1234567890" [ -5 .. intExpr(10) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ -5 .. intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ -5 .. intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  0 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [  0 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [  0 .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := "1234567890" [  0 .. intExpr( 5) ]; ok := ok and stri = "12345";
    stri := "1234567890" [  0 .. intExpr( 9) ]; ok := ok and stri = "123456789";
    stri := "1234567890" [  0 .. intExpr(10) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  0 .. intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  0 .. intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  1 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [  1 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [  1 .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := "1234567890" [  1 .. intExpr( 5) ]; ok := ok and stri = "12345";
    stri := "1234567890" [  1 .. intExpr( 9) ]; ok := ok and stri = "123456789";
    stri := "1234567890" [  1 .. intExpr(10) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  1 .. intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  1 .. intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  5 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [  5 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [  5 .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "1234567890" [  5 .. intExpr( 4) ]; ok := ok and stri = "";
    stri := "1234567890" [  5 .. intExpr( 5) ]; ok := ok and stri = "5";
    stri := "1234567890" [  5 .. intExpr( 6) ]; ok := ok and stri = "56";
    stri := "1234567890" [  5 .. intExpr( 9) ]; ok := ok and stri = "56789";
    stri := "1234567890" [  5 .. intExpr(10) ]; ok := ok and stri = "567890";
    stri := "1234567890" [  5 .. intExpr(11) ]; ok := ok and stri = "567890";
    stri := "1234567890" [  5 .. intExpr(15) ]; ok := ok and stri = "567890";
    stri := "1234567890" [ 10 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ 10 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ 10 .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "1234567890" [ 10 .. intExpr( 9) ]; ok := ok and stri = "";
    stri := "1234567890" [ 10 .. intExpr(10) ]; ok := ok and stri = "0";
    stri := "1234567890" [ 10 .. intExpr(11) ]; ok := ok and stri = "0";
    stri := "1234567890" [ 10 .. intExpr(15) ]; ok := ok and stri = "0";
    stri := "1234567890" [ 11 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 .. intExpr( 5) ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 .. intExpr(10) ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 .. intExpr(11) ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 .. intExpr(15) ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 .. intExpr( 5) ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 .. intExpr(10) ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 .. intExpr(11) ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 .. intExpr(15) ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 .. intExpr(20) ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) .. -9 ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) .. -6 ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) .. -5 ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) .. -4 ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) ..  0 ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) ..  1 ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) .. 15 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) .. -9 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) .. -1 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) ..  0 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) ..  1 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) .. 15 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) .. -5 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) ..  0 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) ..  1 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) ..  2 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) .. 15 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 5) .. -5 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 5) ..  0 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 5) ..  1 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 5) ..  4 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 5) ..  5 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 5) ..  6 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 5) .. 15 ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) .. -9 ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) .. -5 ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) ..  0 ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) ..  1 ]; ok := ok and stri = "1";
    stri := "1" [ intExpr(-5) ..  2 ]; ok := ok and stri = "1";
    stri := "1" [ intExpr(-5) .. 15 ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 0) .. -5 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 0) ..  0 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 0) ..  1 ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 0) ..  2 ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 0) .. 15 ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 1) .. -5 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 1) ..  0 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 1) ..  1 ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 1) ..  2 ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 1) .. 15 ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 5) .. -5 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 5) ..  0 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 5) ..  1 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 5) ..  4 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 5) ..  5 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 5) ..  6 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 5) .. 15 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) .. -9 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) .. -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) ..  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) ..  1 ]; ok := ok and stri = "1";
    stri := "1234567890" [ intExpr(-5) ..  5 ]; ok := ok and stri = "12345";
    stri := "1234567890" [ intExpr(-5) ..  9 ]; ok := ok and stri = "123456789";
    stri := "1234567890" [ intExpr(-5) .. 10 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr(-5) .. 11 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr(-5) .. 15 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 0) .. -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 0) ..  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 0) ..  1 ]; ok := ok and stri = "1";
    stri := "1234567890" [ intExpr( 0) ..  5 ]; ok := ok and stri = "12345";
    stri := "1234567890" [ intExpr( 0) ..  9 ]; ok := ok and stri = "123456789";
    stri := "1234567890" [ intExpr( 0) .. 10 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 0) .. 11 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 0) .. 15 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 1) .. -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 1) ..  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 1) ..  1 ]; ok := ok and stri = "1";
    stri := "1234567890" [ intExpr( 1) ..  5 ]; ok := ok and stri = "12345";
    stri := "1234567890" [ intExpr( 1) ..  9 ]; ok := ok and stri = "123456789";
    stri := "1234567890" [ intExpr( 1) .. 10 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 1) .. 11 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 1) .. 15 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 5) .. -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 5) ..  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 5) ..  1 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 5) ..  4 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 5) ..  5 ]; ok := ok and stri = "5";
    stri := "1234567890" [ intExpr( 5) ..  6 ]; ok := ok and stri = "56";
    stri := "1234567890" [ intExpr( 5) ..  9 ]; ok := ok and stri = "56789";
    stri := "1234567890" [ intExpr( 5) .. 10 ]; ok := ok and stri = "567890";
    stri := "1234567890" [ intExpr( 5) .. 11 ]; ok := ok and stri = "567890";
    stri := "1234567890" [ intExpr( 5) .. 15 ]; ok := ok and stri = "567890";
    stri := "1234567890" [ intExpr(10) .. -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(10) ..  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(10) ..  1 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(10) ..  9 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(10) .. 10 ]; ok := ok and stri = "0";
    stri := "1234567890" [ intExpr(10) .. 11 ]; ok := ok and stri = "0";
    stri := "1234567890" [ intExpr(10) .. 15 ]; ok := ok and stri = "0";
    stri := "1234567890" [ intExpr(11) .. -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) ..  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) ..  1 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) ..  5 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) .. 10 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) .. 11 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) .. 15 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) .. -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) ..  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) ..  1 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) ..  5 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) .. 10 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) .. 11 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) .. 15 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) .. 20 ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) .. intExpr(-9) ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) .. intExpr(-6) ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) .. intExpr(-4) ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) .. intExpr(15) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) .. intExpr(-9) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) .. intExpr(-1) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) .. intExpr(15) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) .. intExpr( 2) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) .. intExpr(15) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 5) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 5) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 5) .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 5) .. intExpr( 4) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 5) .. intExpr( 5) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 5) .. intExpr( 6) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 5) .. intExpr(15) ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) .. intExpr(-9) ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := "1" [ intExpr(-5) .. intExpr( 2) ]; ok := ok and stri = "1";
    stri := "1" [ intExpr(-5) .. intExpr(15) ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 0) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 0) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 0) .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 0) .. intExpr( 2) ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 0) .. intExpr(15) ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 1) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 1) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 1) .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 1) .. intExpr( 2) ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 1) .. intExpr(15) ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 5) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 5) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 5) .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 5) .. intExpr( 4) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 5) .. intExpr( 5) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 5) .. intExpr( 6) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 5) .. intExpr(15) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) .. intExpr(-9) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := "1234567890" [ intExpr(-5) .. intExpr( 5) ]; ok := ok and stri = "12345";
    stri := "1234567890" [ intExpr(-5) .. intExpr( 9) ]; ok := ok and stri = "123456789";
    stri := "1234567890" [ intExpr(-5) .. intExpr(10) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr(-5) .. intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr(-5) .. intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 0) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 0) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 0) .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := "1234567890" [ intExpr( 0) .. intExpr( 5) ]; ok := ok and stri = "12345";
    stri := "1234567890" [ intExpr( 0) .. intExpr( 9) ]; ok := ok and stri = "123456789";
    stri := "1234567890" [ intExpr( 0) .. intExpr(10) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 0) .. intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 0) .. intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 1) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 1) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 1) .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := "1234567890" [ intExpr( 1) .. intExpr( 5) ]; ok := ok and stri = "12345";
    stri := "1234567890" [ intExpr( 1) .. intExpr( 9) ]; ok := ok and stri = "123456789";
    stri := "1234567890" [ intExpr( 1) .. intExpr(10) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 1) .. intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 1) .. intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 5) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 5) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 5) .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 5) .. intExpr( 4) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 5) .. intExpr( 5) ]; ok := ok and stri = "5";
    stri := "1234567890" [ intExpr( 5) .. intExpr( 6) ]; ok := ok and stri = "56";
    stri := "1234567890" [ intExpr( 5) .. intExpr( 9) ]; ok := ok and stri = "56789";
    stri := "1234567890" [ intExpr( 5) .. intExpr(10) ]; ok := ok and stri = "567890";
    stri := "1234567890" [ intExpr( 5) .. intExpr(11) ]; ok := ok and stri = "567890";
    stri := "1234567890" [ intExpr( 5) .. intExpr(15) ]; ok := ok and stri = "567890";
    stri := "1234567890" [ intExpr(10) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(10) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(10) .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(10) .. intExpr( 9) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(10) .. intExpr(10) ]; ok := ok and stri = "0";
    stri := "1234567890" [ intExpr(10) .. intExpr(11) ]; ok := ok and stri = "0";
    stri := "1234567890" [ intExpr(10) .. intExpr(15) ]; ok := ok and stri = "0";
    stri := "1234567890" [ intExpr(11) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) .. intExpr( 5) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) .. intExpr(10) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) .. intExpr(11) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) .. intExpr(15) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) .. intExpr( 1) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) .. intExpr( 5) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) .. intExpr(10) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) .. intExpr(11) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) .. intExpr(15) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) .. intExpr(20) ]; ok := ok and stri = "";
    if not ok then
      writeln(" ***** stri := STRING [ START .. STOP ] does not work correct. (1)");
      okay := FALSE;
    end if;

    ok := TRUE;
    stri := striExpr("") [ -5 .. -9 ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 .. -6 ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 .. -5 ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 .. -4 ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 ..  0 ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 ..  1 ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 .. 15 ]; ok := ok and stri = "";
    stri := striExpr("") [  0 .. -9 ]; ok := ok and stri = "";
    stri := striExpr("") [  0 .. -1 ]; ok := ok and stri = "";
    stri := striExpr("") [  0 ..  0 ]; ok := ok and stri = "";
    stri := striExpr("") [  0 ..  1 ]; ok := ok and stri = "";
    stri := striExpr("") [  0 .. 15 ]; ok := ok and stri = "";
    stri := striExpr("") [  1 .. -5 ]; ok := ok and stri = "";
    stri := striExpr("") [  1 ..  0 ]; ok := ok and stri = "";
    stri := striExpr("") [  1 ..  1 ]; ok := ok and stri = "";
    stri := striExpr("") [  1 ..  2 ]; ok := ok and stri = "";
    stri := striExpr("") [  1 .. 15 ]; ok := ok and stri = "";
    stri := striExpr("") [  5 .. -5 ]; ok := ok and stri = "";
    stri := striExpr("") [  5 ..  0 ]; ok := ok and stri = "";
    stri := striExpr("") [  5 ..  1 ]; ok := ok and stri = "";
    stri := striExpr("") [  5 ..  4 ]; ok := ok and stri = "";
    stri := striExpr("") [  5 ..  5 ]; ok := ok and stri = "";
    stri := striExpr("") [  5 ..  6 ]; ok := ok and stri = "";
    stri := striExpr("") [  5 .. 15 ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 .. -9 ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 ..  1 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ -5 ..  2 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ -5 .. 15 ]; ok := ok and stri = "1";
    stri := striExpr("1") [  0 .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [  0 ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [  0 ..  1 ]; ok := ok and stri = "1";
    stri := striExpr("1") [  0 ..  2 ]; ok := ok and stri = "1";
    stri := striExpr("1") [  0 .. 15 ]; ok := ok and stri = "1";
    stri := striExpr("1") [  1 .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [  1 ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [  1 ..  1 ]; ok := ok and stri = "1";
    stri := striExpr("1") [  1 ..  2 ]; ok := ok and stri = "1";
    stri := striExpr("1") [  1 .. 15 ]; ok := ok and stri = "1";
    stri := striExpr("1") [  5 .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [  5 ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [  5 ..  1 ]; ok := ok and stri = "";
    stri := striExpr("1") [  5 ..  4 ]; ok := ok and stri = "";
    stri := striExpr("1") [  5 ..  5 ]; ok := ok and stri = "";
    stri := striExpr("1") [  5 ..  6 ]; ok := ok and stri = "";
    stri := striExpr("1") [  5 .. 15 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 .. -9 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 ..  1 ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ -5 ..  5 ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [ -5 ..  9 ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [ -5 .. 10 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ -5 .. 11 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ -5 .. 15 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  0 .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  0 ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  0 ..  1 ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [  0 ..  5 ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [  0 ..  9 ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [  0 .. 10 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  0 .. 11 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  0 .. 15 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  1 .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  1 ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  1 ..  1 ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [  1 ..  5 ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [  1 ..  9 ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [  1 .. 10 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  1 .. 11 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  1 .. 15 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  5 .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  5 ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  5 ..  1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  5 ..  4 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  5 ..  5 ]; ok := ok and stri = "5";
    stri := striExpr("1234567890") [  5 ..  6 ]; ok := ok and stri = "56";
    stri := striExpr("1234567890") [  5 ..  9 ]; ok := ok and stri = "56789";
    stri := striExpr("1234567890") [  5 .. 10 ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [  5 .. 11 ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [  5 .. 15 ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [ 10 .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 10 ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 10 ..  1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 10 ..  9 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 10 .. 10 ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ 10 .. 11 ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ 10 .. 15 ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ 11 .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 ..  1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 ..  5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 .. 10 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 .. 11 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 .. 15 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 ..  1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 ..  5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 .. 10 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 .. 11 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 .. 15 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 .. 20 ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 .. intExpr(-9) ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 .. intExpr(-6) ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 .. intExpr(-4) ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 .. intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("") [  0 .. intExpr(-9) ]; ok := ok and stri = "";
    stri := striExpr("") [  0 .. intExpr(-1) ]; ok := ok and stri = "";
    stri := striExpr("") [  0 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [  0 .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [  0 .. intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("") [  1 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("") [  1 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [  1 .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [  1 .. intExpr( 2) ]; ok := ok and stri = "";
    stri := striExpr("") [  1 .. intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("") [  5 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("") [  5 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [  5 .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [  5 .. intExpr( 4) ]; ok := ok and stri = "";
    stri := striExpr("") [  5 .. intExpr( 5) ]; ok := ok and stri = "";
    stri := striExpr("") [  5 .. intExpr( 6) ]; ok := ok and stri = "";
    stri := striExpr("") [  5 .. intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 .. intExpr(-9) ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ -5 .. intExpr( 2) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ -5 .. intExpr(15) ]; ok := ok and stri = "1";
    stri := striExpr("1") [  0 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [  0 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [  0 .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := striExpr("1") [  0 .. intExpr( 2) ]; ok := ok and stri = "1";
    stri := striExpr("1") [  0 .. intExpr(15) ]; ok := ok and stri = "1";
    stri := striExpr("1") [  1 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [  1 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [  1 .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := striExpr("1") [  1 .. intExpr( 2) ]; ok := ok and stri = "1";
    stri := striExpr("1") [  1 .. intExpr(15) ]; ok := ok and stri = "1";
    stri := striExpr("1") [  5 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [  5 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [  5 .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1") [  5 .. intExpr( 4) ]; ok := ok and stri = "";
    stri := striExpr("1") [  5 .. intExpr( 5) ]; ok := ok and stri = "";
    stri := striExpr("1") [  5 .. intExpr( 6) ]; ok := ok and stri = "";
    stri := striExpr("1") [  5 .. intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 .. intExpr(-9) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ -5 .. intExpr( 5) ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [ -5 .. intExpr( 9) ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [ -5 .. intExpr(10) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ -5 .. intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ -5 .. intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  0 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  0 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  0 .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [  0 .. intExpr( 5) ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [  0 .. intExpr( 9) ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [  0 .. intExpr(10) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  0 .. intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  0 .. intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  1 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  1 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  1 .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [  1 .. intExpr( 5) ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [  1 .. intExpr( 9) ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [  1 .. intExpr(10) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  1 .. intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  1 .. intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  5 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  5 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  5 .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  5 .. intExpr( 4) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  5 .. intExpr( 5) ]; ok := ok and stri = "5";
    stri := striExpr("1234567890") [  5 .. intExpr( 6) ]; ok := ok and stri = "56";
    stri := striExpr("1234567890") [  5 .. intExpr( 9) ]; ok := ok and stri = "56789";
    stri := striExpr("1234567890") [  5 .. intExpr(10) ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [  5 .. intExpr(11) ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [  5 .. intExpr(15) ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [ 10 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 10 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 10 .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 10 .. intExpr( 9) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 10 .. intExpr(10) ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ 10 .. intExpr(11) ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ 10 .. intExpr(15) ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ 11 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 .. intExpr( 5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 .. intExpr(10) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 .. intExpr(11) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 .. intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 .. intExpr( 5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 .. intExpr(10) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 .. intExpr(11) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 .. intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 .. intExpr(20) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) .. -9 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) .. -6 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) .. -5 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) .. -4 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) ..  0 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) ..  1 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) .. 15 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) .. -9 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) .. -1 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) ..  0 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) ..  1 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) .. 15 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) .. -5 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) ..  0 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) ..  1 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) ..  2 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) .. 15 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 5) .. -5 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 5) ..  0 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 5) ..  1 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 5) ..  4 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 5) ..  5 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 5) ..  6 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 5) .. 15 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) .. -9 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) ..  1 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr(-5) ..  2 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr(-5) .. 15 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 0) .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 0) ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 0) ..  1 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 0) ..  2 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 0) .. 15 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 1) .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 1) ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 1) ..  1 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 1) ..  2 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 1) .. 15 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 5) .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 5) ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 5) ..  1 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 5) ..  4 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 5) ..  5 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 5) ..  6 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 5) .. 15 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) .. -9 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) ..  1 ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ intExpr(-5) ..  5 ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [ intExpr(-5) ..  9 ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [ intExpr(-5) .. 10 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr(-5) .. 11 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr(-5) .. 15 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 0) .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 0) ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 0) ..  1 ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ intExpr( 0) ..  5 ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [ intExpr( 0) ..  9 ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [ intExpr( 0) .. 10 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 0) .. 11 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 0) .. 15 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 1) .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 1) ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 1) ..  1 ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ intExpr( 1) ..  5 ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [ intExpr( 1) ..  9 ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [ intExpr( 1) .. 10 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 1) .. 11 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 1) .. 15 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 5) .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 5) ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 5) ..  1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 5) ..  4 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 5) ..  5 ]; ok := ok and stri = "5";
    stri := striExpr("1234567890") [ intExpr( 5) ..  6 ]; ok := ok and stri = "56";
    stri := striExpr("1234567890") [ intExpr( 5) ..  9 ]; ok := ok and stri = "56789";
    stri := striExpr("1234567890") [ intExpr( 5) .. 10 ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [ intExpr( 5) .. 11 ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [ intExpr( 5) .. 15 ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [ intExpr(10) .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(10) ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(10) ..  1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(10) ..  9 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(10) .. 10 ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ intExpr(10) .. 11 ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ intExpr(10) .. 15 ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ intExpr(11) .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) ..  1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) ..  5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) .. 10 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) .. 11 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) .. 15 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) .. -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) ..  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) ..  1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) ..  5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) .. 10 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) .. 11 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) .. 15 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) .. 20 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) .. intExpr(-9) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) .. intExpr(-6) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) .. intExpr(-4) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) .. intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) .. intExpr(-9) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) .. intExpr(-1) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) .. intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) .. intExpr( 2) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) .. intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 5) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 5) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 5) .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 5) .. intExpr( 4) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 5) .. intExpr( 5) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 5) .. intExpr( 6) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 5) .. intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) .. intExpr(-9) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr(-5) .. intExpr( 2) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr(-5) .. intExpr(15) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 0) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 0) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 0) .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 0) .. intExpr( 2) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 0) .. intExpr(15) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 1) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 1) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 1) .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 1) .. intExpr( 2) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 1) .. intExpr(15) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 5) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 5) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 5) .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 5) .. intExpr( 4) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 5) .. intExpr( 5) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 5) .. intExpr( 6) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 5) .. intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) .. intExpr(-9) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ intExpr(-5) .. intExpr( 5) ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [ intExpr(-5) .. intExpr( 9) ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [ intExpr(-5) .. intExpr(10) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr(-5) .. intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr(-5) .. intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 0) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 0) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 0) .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ intExpr( 0) .. intExpr( 5) ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [ intExpr( 0) .. intExpr( 9) ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [ intExpr( 0) .. intExpr(10) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 0) .. intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 0) .. intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 1) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 1) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 1) .. intExpr( 1) ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ intExpr( 1) .. intExpr( 5) ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [ intExpr( 1) .. intExpr( 9) ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [ intExpr( 1) .. intExpr(10) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 1) .. intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 1) .. intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 5) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 5) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 5) .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 5) .. intExpr( 4) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 5) .. intExpr( 5) ]; ok := ok and stri = "5";
    stri := striExpr("1234567890") [ intExpr( 5) .. intExpr( 6) ]; ok := ok and stri = "56";
    stri := striExpr("1234567890") [ intExpr( 5) .. intExpr( 9) ]; ok := ok and stri = "56789";
    stri := striExpr("1234567890") [ intExpr( 5) .. intExpr(10) ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [ intExpr( 5) .. intExpr(11) ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [ intExpr( 5) .. intExpr(15) ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [ intExpr(10) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(10) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(10) .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(10) .. intExpr( 9) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(10) .. intExpr(10) ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ intExpr(10) .. intExpr(11) ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ intExpr(10) .. intExpr(15) ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ intExpr(11) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) .. intExpr( 5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) .. intExpr(10) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) .. intExpr(11) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) .. intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) .. intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) .. intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) .. intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) .. intExpr( 5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) .. intExpr(10) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) .. intExpr(11) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) .. intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) .. intExpr(20) ]; ok := ok and stri = "";
    if not ok then
      writeln(" ***** string := STRING [ START .. STOP ] does not work correct. (2)");
      okay := FALSE;
    end if;

    if  rangeFunction("", -5, -9) <> "" or
        rangeFunction("", -5, -6) <> "" or
        rangeFunction("", -5, -5) <> "" or
        rangeFunction("", -5, -4) <> "" or
        rangeFunction("", -5,  0) <> "" or
        rangeFunction("", -5,  1) <> "" or
        rangeFunction("", -5, 15) <> "" or
        rangeFunction("",  0, -9) <> "" or
        rangeFunction("",  0, -1) <> "" or
        rangeFunction("",  0,  0) <> "" or
        rangeFunction("",  0,  1) <> "" or
        rangeFunction("",  0, 15) <> "" or
        rangeFunction("",  1, -5) <> "" or
        rangeFunction("",  1,  0) <> "" or
        rangeFunction("",  1,  1) <> "" or
        rangeFunction("",  1,  2) <> "" or
        rangeFunction("",  1, 15) <> "" or
        rangeFunction("",  5, -5) <> "" or
        rangeFunction("",  5,  0) <> "" or
        rangeFunction("",  5,  1) <> "" or
        rangeFunction("",  5,  4) <> "" or
        rangeFunction("",  5,  5) <> "" or
        rangeFunction("",  5,  6) <> "" or
        rangeFunction("",  5, 15) <> "" or
        rangeFunction("1", -5, -9) <> "" or
        rangeFunction("1", -5, -5) <> "" or
        rangeFunction("1", -5,  0) <> "" or
        rangeFunction("1", -5,  1) <> "1" or
        rangeFunction("1", -5,  2) <> "1" or
        rangeFunction("1", -5, 15) <> "1" or
        rangeFunction("1",  0, -5) <> "" or
        rangeFunction("1",  0,  0) <> "" or
        rangeFunction("1",  0,  1) <> "1" or
        rangeFunction("1",  0,  2) <> "1" or
        rangeFunction("1",  0, 15) <> "1" or
        rangeFunction("1",  1, -5) <> "" or
        rangeFunction("1",  1,  0) <> "" or
        rangeFunction("1",  1,  1) <> "1" or
        rangeFunction("1",  1,  2) <> "1" or
        rangeFunction("1",  1, 15) <> "1" or
        rangeFunction("1",  5, -5) <> "" or
        rangeFunction("1",  5,  0) <> "" or
        rangeFunction("1",  5,  1) <> "" or
        rangeFunction("1",  5,  4) <> "" or
        rangeFunction("1",  5,  5) <> "" or
        rangeFunction("1",  5,  6) <> "" or
        rangeFunction("1",  5, 15) <> "" or
        rangeFunction("1234567890", -5, -9) <> "" or
        rangeFunction("1234567890", -5, -5) <> "" or
        rangeFunction("1234567890", -5,  0) <> "" or
        rangeFunction("1234567890", -5,  1) <> "1" or
        rangeFunction("1234567890", -5,  5) <> "12345" or
        rangeFunction("1234567890", -5,  9) <> "123456789" or
        rangeFunction("1234567890", -5, 10) <> "1234567890" or
        rangeFunction("1234567890", -5, 11) <> "1234567890" or
        rangeFunction("1234567890", -5, 15) <> "1234567890" or
        rangeFunction("1234567890",  0, -5) <> "" or
        rangeFunction("1234567890",  0,  0) <> "" or
        rangeFunction("1234567890",  0,  1) <> "1" or
        rangeFunction("1234567890",  0,  5) <> "12345" or
        rangeFunction("1234567890",  0,  9) <> "123456789" or
        rangeFunction("1234567890",  0, 10) <> "1234567890" or
        rangeFunction("1234567890",  0, 11) <> "1234567890" or
        rangeFunction("1234567890",  0, 15) <> "1234567890" or
        rangeFunction("1234567890",  1, -5) <> "" or
        rangeFunction("1234567890",  1,  0) <> "" or
        rangeFunction("1234567890",  1,  1) <> "1" or
        rangeFunction("1234567890",  1,  5) <> "12345" or
        rangeFunction("1234567890",  1,  9) <> "123456789" or
        rangeFunction("1234567890",  1, 10) <> "1234567890" or
        rangeFunction("1234567890",  1, 11) <> "1234567890" or
        rangeFunction("1234567890",  1, 15) <> "1234567890" or
        rangeFunction("1234567890",  5, -5) <> "" or
        rangeFunction("1234567890",  5,  0) <> "" or
        rangeFunction("1234567890",  5,  1) <> "" or
        rangeFunction("1234567890",  5,  4) <> "" or
        rangeFunction("1234567890",  5,  5) <> "5" or
        rangeFunction("1234567890",  5,  6) <> "56" or
        rangeFunction("1234567890",  5,  9) <> "56789" or
        rangeFunction("1234567890",  5, 10) <> "567890" or
        rangeFunction("1234567890",  5, 11) <> "567890" or
        rangeFunction("1234567890",  5, 15) <> "567890" or
        rangeFunction("1234567890", 10, -5) <> "" or
        rangeFunction("1234567890", 10,  0) <> "" or
        rangeFunction("1234567890", 10,  1) <> "" or
        rangeFunction("1234567890", 10,  9) <> "" or
        rangeFunction("1234567890", 10, 10) <> "0" or
        rangeFunction("1234567890", 10, 11) <> "0" or
        rangeFunction("1234567890", 10, 15) <> "0" or
        rangeFunction("1234567890", 11, -5) <> "" or
        rangeFunction("1234567890", 11,  0) <> "" or
        rangeFunction("1234567890", 11,  1) <> "" or
        rangeFunction("1234567890", 11,  5) <> "" or
        rangeFunction("1234567890", 11, 10) <> "" or
        rangeFunction("1234567890", 11, 11) <> "" or
        rangeFunction("1234567890", 11, 15) <> "" or
        rangeFunction("1234567890", 15, -5) <> "" or
        rangeFunction("1234567890", 15,  0) <> "" or
        rangeFunction("1234567890", 15,  1) <> "" or
        rangeFunction("1234567890", 15,  5) <> "" or
        rangeFunction("1234567890", 15, 10) <> "" or
        rangeFunction("1234567890", 15, 11) <> "" or
        rangeFunction("1234567890", 15, 15) <> "" or
        rangeFunction("1234567890", 15, 20) <> "" or
        rangeFunction("", -5, intExpr(-9)) <> "" or
        rangeFunction("", -5, intExpr(-6)) <> "" or
        rangeFunction("", -5, intExpr(-5)) <> "" or
        rangeFunction("", -5, intExpr(-4)) <> "" or
        rangeFunction("", -5, intExpr( 0)) <> "" or
        rangeFunction("", -5, intExpr( 1)) <> "" or
        rangeFunction("", -5, intExpr(15)) <> "" or
        rangeFunction("",  0, intExpr(-9)) <> "" or
        rangeFunction("",  0, intExpr(-1)) <> "" or
        rangeFunction("",  0, intExpr( 0)) <> "" or
        rangeFunction("",  0, intExpr( 1)) <> "" or
        rangeFunction("",  0, intExpr(15)) <> "" or
        rangeFunction("",  1, intExpr(-5)) <> "" or
        rangeFunction("",  1, intExpr( 0)) <> "" or
        rangeFunction("",  1, intExpr( 1)) <> "" or
        rangeFunction("",  1, intExpr( 2)) <> "" or
        rangeFunction("",  1, intExpr(15)) <> "" or
        rangeFunction("",  5, intExpr(-5)) <> "" or
        rangeFunction("",  5, intExpr( 0)) <> "" or
        rangeFunction("",  5, intExpr( 1)) <> "" or
        rangeFunction("",  5, intExpr( 4)) <> "" or
        rangeFunction("",  5, intExpr( 5)) <> "" or
        rangeFunction("",  5, intExpr( 6)) <> "" or
        rangeFunction("",  5, intExpr(15)) <> "" or
        rangeFunction("1", -5, intExpr(-9)) <> "" or
        rangeFunction("1", -5, intExpr(-5)) <> "" or
        rangeFunction("1", -5, intExpr( 0)) <> "" or
        rangeFunction("1", -5, intExpr( 1)) <> "1" or
        rangeFunction("1", -5, intExpr( 2)) <> "1" or
        rangeFunction("1", -5, intExpr(15)) <> "1" or
        rangeFunction("1",  0, intExpr(-5)) <> "" or
        rangeFunction("1",  0, intExpr( 0)) <> "" or
        rangeFunction("1",  0, intExpr( 1)) <> "1" or
        rangeFunction("1",  0, intExpr( 2)) <> "1" or
        rangeFunction("1",  0, intExpr(15)) <> "1" or
        rangeFunction("1",  1, intExpr(-5)) <> "" or
        rangeFunction("1",  1, intExpr( 0)) <> "" or
        rangeFunction("1",  1, intExpr( 1)) <> "1" or
        rangeFunction("1",  1, intExpr( 2)) <> "1" or
        rangeFunction("1",  1, intExpr(15)) <> "1" or
        rangeFunction("1",  5, intExpr(-5)) <> "" or
        rangeFunction("1",  5, intExpr( 0)) <> "" or
        rangeFunction("1",  5, intExpr( 1)) <> "" or
        rangeFunction("1",  5, intExpr( 4)) <> "" or
        rangeFunction("1",  5, intExpr( 5)) <> "" or
        rangeFunction("1",  5, intExpr( 6)) <> "" or
        rangeFunction("1",  5, intExpr(15)) <> "" or
        rangeFunction("1234567890", -5, intExpr(-9)) <> "" or
        rangeFunction("1234567890", -5, intExpr(-5)) <> "" or
        rangeFunction("1234567890", -5, intExpr( 0)) <> "" or
        rangeFunction("1234567890", -5, intExpr( 1)) <> "1" or
        rangeFunction("1234567890", -5, intExpr( 5)) <> "12345" or
        rangeFunction("1234567890", -5, intExpr( 9)) <> "123456789" or
        rangeFunction("1234567890", -5, intExpr(10)) <> "1234567890" or
        rangeFunction("1234567890", -5, intExpr(11)) <> "1234567890" or
        rangeFunction("1234567890", -5, intExpr(15)) <> "1234567890" or
        rangeFunction("1234567890",  0, intExpr(-5)) <> "" or
        rangeFunction("1234567890",  0, intExpr( 0)) <> "" or
        rangeFunction("1234567890",  0, intExpr( 1)) <> "1" or
        rangeFunction("1234567890",  0, intExpr( 5)) <> "12345" or
        rangeFunction("1234567890",  0, intExpr( 9)) <> "123456789" or
        rangeFunction("1234567890",  0, intExpr(10)) <> "1234567890" or
        rangeFunction("1234567890",  0, intExpr(11)) <> "1234567890" or
        rangeFunction("1234567890",  0, intExpr(15)) <> "1234567890" or
        rangeFunction("1234567890",  1, intExpr(-5)) <> "" or
        rangeFunction("1234567890",  1, intExpr( 0)) <> "" or
        rangeFunction("1234567890",  1, intExpr( 1)) <> "1" or
        rangeFunction("1234567890",  1, intExpr( 5)) <> "12345" or
        rangeFunction("1234567890",  1, intExpr( 9)) <> "123456789" or
        rangeFunction("1234567890",  1, intExpr(10)) <> "1234567890" or
        rangeFunction("1234567890",  1, intExpr(11)) <> "1234567890" or
        rangeFunction("1234567890",  1, intExpr(15)) <> "1234567890" or
        rangeFunction("1234567890",  5, intExpr(-5)) <> "" or
        rangeFunction("1234567890",  5, intExpr( 0)) <> "" or
        rangeFunction("1234567890",  5, intExpr( 1)) <> "" or
        rangeFunction("1234567890",  5, intExpr( 4)) <> "" or
        rangeFunction("1234567890",  5, intExpr( 5)) <> "5" or
        rangeFunction("1234567890",  5, intExpr( 6)) <> "56" or
        rangeFunction("1234567890",  5, intExpr( 9)) <> "56789" or
        rangeFunction("1234567890",  5, intExpr(10)) <> "567890" or
        rangeFunction("1234567890",  5, intExpr(11)) <> "567890" or
        rangeFunction("1234567890",  5, intExpr(15)) <> "567890" or
        rangeFunction("1234567890", 10, intExpr(-5)) <> "" or
        rangeFunction("1234567890", 10, intExpr( 0)) <> "" or
        rangeFunction("1234567890", 10, intExpr( 1)) <> "" or
        rangeFunction("1234567890", 10, intExpr( 9)) <> "" or
        rangeFunction("1234567890", 10, intExpr(10)) <> "0" or
        rangeFunction("1234567890", 10, intExpr(11)) <> "0" or
        rangeFunction("1234567890", 10, intExpr(15)) <> "0" or
        rangeFunction("1234567890", 11, intExpr(-5)) <> "" or
        rangeFunction("1234567890", 11, intExpr( 0)) <> "" or
        rangeFunction("1234567890", 11, intExpr( 1)) <> "" or
        rangeFunction("1234567890", 11, intExpr( 5)) <> "" or
        rangeFunction("1234567890", 11, intExpr(10)) <> "" or
        rangeFunction("1234567890", 11, intExpr(11)) <> "" or
        rangeFunction("1234567890", 11, intExpr(15)) <> "" or
        rangeFunction("1234567890", 15, intExpr(-5)) <> "" or
        rangeFunction("1234567890", 15, intExpr( 0)) <> "" or
        rangeFunction("1234567890", 15, intExpr( 1)) <> "" or
        rangeFunction("1234567890", 15, intExpr( 5)) <> "" or
        rangeFunction("1234567890", 15, intExpr(10)) <> "" or
        rangeFunction("1234567890", 15, intExpr(11)) <> "" or
        rangeFunction("1234567890", 15, intExpr(15)) <> "" or
        rangeFunction("1234567890", 15, intExpr(20)) <> "" or
        rangeFunction("", intExpr(-5), -9) <> "" or
        rangeFunction("", intExpr(-5), -6) <> "" or
        rangeFunction("", intExpr(-5), -5) <> "" or
        rangeFunction("", intExpr(-5), -4) <> "" or
        rangeFunction("", intExpr(-5),  0) <> "" or
        rangeFunction("", intExpr(-5),  1) <> "" or
        rangeFunction("", intExpr(-5), 15) <> "" or
        rangeFunction("", intExpr( 0), -9) <> "" or
        rangeFunction("", intExpr( 0), -1) <> "" or
        rangeFunction("", intExpr( 0),  0) <> "" or
        rangeFunction("", intExpr( 0),  1) <> "" or
        rangeFunction("", intExpr( 0), 15) <> "" or
        rangeFunction("", intExpr( 1), -5) <> "" or
        rangeFunction("", intExpr( 1),  0) <> "" or
        rangeFunction("", intExpr( 1),  1) <> "" or
        rangeFunction("", intExpr( 1),  2) <> "" or
        rangeFunction("", intExpr( 1), 15) <> "" or
        rangeFunction("", intExpr( 5), -5) <> "" or
        rangeFunction("", intExpr( 5),  0) <> "" or
        rangeFunction("", intExpr( 5),  1) <> "" or
        rangeFunction("", intExpr( 5),  4) <> "" or
        rangeFunction("", intExpr( 5),  5) <> "" or
        rangeFunction("", intExpr( 5),  6) <> "" or
        rangeFunction("", intExpr( 5), 15) <> "" or
        rangeFunction("1", intExpr(-5), -9) <> "" or
        rangeFunction("1", intExpr(-5), -5) <> "" or
        rangeFunction("1", intExpr(-5),  0) <> "" or
        rangeFunction("1", intExpr(-5),  1) <> "1" or
        rangeFunction("1", intExpr(-5),  2) <> "1" or
        rangeFunction("1", intExpr(-5), 15) <> "1" or
        rangeFunction("1", intExpr( 0), -5) <> "" or
        rangeFunction("1", intExpr( 0),  0) <> "" or
        rangeFunction("1", intExpr( 0),  1) <> "1" or
        rangeFunction("1", intExpr( 0),  2) <> "1" or
        rangeFunction("1", intExpr( 0), 15) <> "1" or
        rangeFunction("1", intExpr( 1), -5) <> "" or
        rangeFunction("1", intExpr( 1),  0) <> "" or
        rangeFunction("1", intExpr( 1),  1) <> "1" or
        rangeFunction("1", intExpr( 1),  2) <> "1" or
        rangeFunction("1", intExpr( 1), 15) <> "1" or
        rangeFunction("1", intExpr( 5), -5) <> "" or
        rangeFunction("1", intExpr( 5),  0) <> "" or
        rangeFunction("1", intExpr( 5),  1) <> "" or
        rangeFunction("1", intExpr( 5),  4) <> "" or
        rangeFunction("1", intExpr( 5),  5) <> "" or
        rangeFunction("1", intExpr( 5),  6) <> "" or
        rangeFunction("1", intExpr( 5), 15) <> "" or
        rangeFunction("1234567890", intExpr(-5), -9) <> "" or
        rangeFunction("1234567890", intExpr(-5), -5) <> "" or
        rangeFunction("1234567890", intExpr(-5),  0) <> "" or
        rangeFunction("1234567890", intExpr(-5),  1) <> "1" or
        rangeFunction("1234567890", intExpr(-5),  5) <> "12345" or
        rangeFunction("1234567890", intExpr(-5),  9) <> "123456789" or
        rangeFunction("1234567890", intExpr(-5), 10) <> "1234567890" or
        rangeFunction("1234567890", intExpr(-5), 11) <> "1234567890" or
        rangeFunction("1234567890", intExpr(-5), 15) <> "1234567890" or
        rangeFunction("1234567890", intExpr( 0), -5) <> "" or
        rangeFunction("1234567890", intExpr( 0),  0) <> "" or
        rangeFunction("1234567890", intExpr( 0),  1) <> "1" or
        rangeFunction("1234567890", intExpr( 0),  5) <> "12345" or
        rangeFunction("1234567890", intExpr( 0),  9) <> "123456789" or
        rangeFunction("1234567890", intExpr( 0), 10) <> "1234567890" or
        rangeFunction("1234567890", intExpr( 0), 11) <> "1234567890" or
        rangeFunction("1234567890", intExpr( 0), 15) <> "1234567890" or
        rangeFunction("1234567890", intExpr( 1), -5) <> "" or
        rangeFunction("1234567890", intExpr( 1),  0) <> "" or
        rangeFunction("1234567890", intExpr( 1),  1) <> "1" or
        rangeFunction("1234567890", intExpr( 1),  5) <> "12345" or
        rangeFunction("1234567890", intExpr( 1),  9) <> "123456789" or
        rangeFunction("1234567890", intExpr( 1), 10) <> "1234567890" or
        rangeFunction("1234567890", intExpr( 1), 11) <> "1234567890" or
        rangeFunction("1234567890", intExpr( 1), 15) <> "1234567890" or
        rangeFunction("1234567890", intExpr( 5), -5) <> "" or
        rangeFunction("1234567890", intExpr( 5),  0) <> "" or
        rangeFunction("1234567890", intExpr( 5),  1) <> "" or
        rangeFunction("1234567890", intExpr( 5),  4) <> "" or
        rangeFunction("1234567890", intExpr( 5),  5) <> "5" or
        rangeFunction("1234567890", intExpr( 5),  6) <> "56" or
        rangeFunction("1234567890", intExpr( 5),  9) <> "56789" or
        rangeFunction("1234567890", intExpr( 5), 10) <> "567890" or
        rangeFunction("1234567890", intExpr( 5), 11) <> "567890" or
        rangeFunction("1234567890", intExpr( 5), 15) <> "567890" or
        rangeFunction("1234567890", intExpr(10), -5) <> "" or
        rangeFunction("1234567890", intExpr(10),  0) <> "" or
        rangeFunction("1234567890", intExpr(10),  1) <> "" or
        rangeFunction("1234567890", intExpr(10),  9) <> "" or
        rangeFunction("1234567890", intExpr(10), 10) <> "0" or
        rangeFunction("1234567890", intExpr(10), 11) <> "0" or
        rangeFunction("1234567890", intExpr(10), 15) <> "0" or
        rangeFunction("1234567890", intExpr(11), -5) <> "" or
        rangeFunction("1234567890", intExpr(11),  0) <> "" or
        rangeFunction("1234567890", intExpr(11),  1) <> "" or
        rangeFunction("1234567890", intExpr(11),  5) <> "" or
        rangeFunction("1234567890", intExpr(11), 10) <> "" or
        rangeFunction("1234567890", intExpr(11), 11) <> "" or
        rangeFunction("1234567890", intExpr(11), 15) <> "" or
        rangeFunction("1234567890", intExpr(15), -5) <> "" or
        rangeFunction("1234567890", intExpr(15),  0) <> "" or
        rangeFunction("1234567890", intExpr(15),  1) <> "" or
        rangeFunction("1234567890", intExpr(15),  5) <> "" or
        rangeFunction("1234567890", intExpr(15), 10) <> "" or
        rangeFunction("1234567890", intExpr(15), 11) <> "" or
        rangeFunction("1234567890", intExpr(15), 15) <> "" or
        rangeFunction("1234567890", intExpr(15), 20) <> "" or
        rangeFunction("", intExpr(-5), intExpr(-9)) <> "" or
        rangeFunction("", intExpr(-5), intExpr(-6)) <> "" or
        rangeFunction("", intExpr(-5), intExpr(-5)) <> "" or
        rangeFunction("", intExpr(-5), intExpr(-4)) <> "" or
        rangeFunction("", intExpr(-5), intExpr( 0)) <> "" or
        rangeFunction("", intExpr(-5), intExpr( 1)) <> "" or
        rangeFunction("", intExpr(-5), intExpr(15)) <> "" or
        rangeFunction("", intExpr( 0), intExpr(-9)) <> "" or
        rangeFunction("", intExpr( 0), intExpr(-1)) <> "" or
        rangeFunction("", intExpr( 0), intExpr( 0)) <> "" or
        rangeFunction("", intExpr( 0), intExpr( 1)) <> "" or
        rangeFunction("", intExpr( 0), intExpr(15)) <> "" or
        rangeFunction("", intExpr( 1), intExpr(-5)) <> "" or
        rangeFunction("", intExpr( 1), intExpr( 0)) <> "" or
        rangeFunction("", intExpr( 1), intExpr( 1)) <> "" or
        rangeFunction("", intExpr( 1), intExpr( 2)) <> "" or
        rangeFunction("", intExpr( 1), intExpr(15)) <> "" or
        rangeFunction("", intExpr( 5), intExpr(-5)) <> "" or
        rangeFunction("", intExpr( 5), intExpr( 0)) <> "" or
        rangeFunction("", intExpr( 5), intExpr( 1)) <> "" or
        rangeFunction("", intExpr( 5), intExpr( 4)) <> "" or
        rangeFunction("", intExpr( 5), intExpr( 5)) <> "" or
        rangeFunction("", intExpr( 5), intExpr( 6)) <> "" or
        rangeFunction("", intExpr( 5), intExpr(15)) <> "" or
        rangeFunction("1", intExpr(-5), intExpr(-9)) <> "" or
        rangeFunction("1", intExpr(-5), intExpr(-5)) <> "" or
        rangeFunction("1", intExpr(-5), intExpr( 0)) <> "" or
        rangeFunction("1", intExpr(-5), intExpr( 1)) <> "1" or
        rangeFunction("1", intExpr(-5), intExpr( 2)) <> "1" or
        rangeFunction("1", intExpr(-5), intExpr(15)) <> "1" or
        rangeFunction("1", intExpr( 0), intExpr(-5)) <> "" or
        rangeFunction("1", intExpr( 0), intExpr( 0)) <> "" or
        rangeFunction("1", intExpr( 0), intExpr( 1)) <> "1" or
        rangeFunction("1", intExpr( 0), intExpr( 2)) <> "1" or
        rangeFunction("1", intExpr( 0), intExpr(15)) <> "1" or
        rangeFunction("1", intExpr( 1), intExpr(-5)) <> "" or
        rangeFunction("1", intExpr( 1), intExpr( 0)) <> "" or
        rangeFunction("1", intExpr( 1), intExpr( 1)) <> "1" or
        rangeFunction("1", intExpr( 1), intExpr( 2)) <> "1" or
        rangeFunction("1", intExpr( 1), intExpr(15)) <> "1" or
        rangeFunction("1", intExpr( 5), intExpr(-5)) <> "" or
        rangeFunction("1", intExpr( 5), intExpr( 0)) <> "" or
        rangeFunction("1", intExpr( 5), intExpr( 1)) <> "" or
        rangeFunction("1", intExpr( 5), intExpr( 4)) <> "" or
        rangeFunction("1", intExpr( 5), intExpr( 5)) <> "" or
        rangeFunction("1", intExpr( 5), intExpr( 6)) <> "" or
        rangeFunction("1", intExpr( 5), intExpr(15)) <> "" or
        rangeFunction("1234567890", intExpr(-5), intExpr(-9)) <> "" or
        rangeFunction("1234567890", intExpr(-5), intExpr(-5)) <> "" or
        rangeFunction("1234567890", intExpr(-5), intExpr( 0)) <> "" or
        rangeFunction("1234567890", intExpr(-5), intExpr( 1)) <> "1" or
        rangeFunction("1234567890", intExpr(-5), intExpr( 5)) <> "12345" or
        rangeFunction("1234567890", intExpr(-5), intExpr( 9)) <> "123456789" or
        rangeFunction("1234567890", intExpr(-5), intExpr(10)) <> "1234567890" or
        rangeFunction("1234567890", intExpr(-5), intExpr(11)) <> "1234567890" or
        rangeFunction("1234567890", intExpr(-5), intExpr(15)) <> "1234567890" or
        rangeFunction("1234567890", intExpr( 0), intExpr(-5)) <> "" or
        rangeFunction("1234567890", intExpr( 0), intExpr( 0)) <> "" or
        rangeFunction("1234567890", intExpr( 0), intExpr( 1)) <> "1" or
        rangeFunction("1234567890", intExpr( 0), intExpr( 5)) <> "12345" or
        rangeFunction("1234567890", intExpr( 0), intExpr( 9)) <> "123456789" or
        rangeFunction("1234567890", intExpr( 0), intExpr(10)) <> "1234567890" or
        rangeFunction("1234567890", intExpr( 0), intExpr(11)) <> "1234567890" or
        rangeFunction("1234567890", intExpr( 0), intExpr(15)) <> "1234567890" or
        rangeFunction("1234567890", intExpr( 1), intExpr(-5)) <> "" or
        rangeFunction("1234567890", intExpr( 1), intExpr( 0)) <> "" or
        rangeFunction("1234567890", intExpr( 1), intExpr( 1)) <> "1" or
        rangeFunction("1234567890", intExpr( 1), intExpr( 5)) <> "12345" or
        rangeFunction("1234567890", intExpr( 1), intExpr( 9)) <> "123456789" or
        rangeFunction("1234567890", intExpr( 1), intExpr(10)) <> "1234567890" or
        rangeFunction("1234567890", intExpr( 1), intExpr(11)) <> "1234567890" or
        rangeFunction("1234567890", intExpr( 1), intExpr(15)) <> "1234567890" or
        rangeFunction("1234567890", intExpr( 5), intExpr(-5)) <> "" or
        rangeFunction("1234567890", intExpr( 5), intExpr( 0)) <> "" or
        rangeFunction("1234567890", intExpr( 5), intExpr( 1)) <> "" or
        rangeFunction("1234567890", intExpr( 5), intExpr( 4)) <> "" or
        rangeFunction("1234567890", intExpr( 5), intExpr( 5)) <> "5" or
        rangeFunction("1234567890", intExpr( 5), intExpr( 6)) <> "56" or
        rangeFunction("1234567890", intExpr( 5), intExpr( 9)) <> "56789" or
        rangeFunction("1234567890", intExpr( 5), intExpr(10)) <> "567890" or
        rangeFunction("1234567890", intExpr( 5), intExpr(11)) <> "567890" or
        rangeFunction("1234567890", intExpr( 5), intExpr(15)) <> "567890" or
        rangeFunction("1234567890", intExpr(10), intExpr(-5)) <> "" or
        rangeFunction("1234567890", intExpr(10), intExpr( 0)) <> "" or
        rangeFunction("1234567890", intExpr(10), intExpr( 1)) <> "" or
        rangeFunction("1234567890", intExpr(10), intExpr( 9)) <> "" or
        rangeFunction("1234567890", intExpr(10), intExpr(10)) <> "0" or
        rangeFunction("1234567890", intExpr(10), intExpr(11)) <> "0" or
        rangeFunction("1234567890", intExpr(10), intExpr(15)) <> "0" or
        rangeFunction("1234567890", intExpr(11), intExpr(-5)) <> "" or
        rangeFunction("1234567890", intExpr(11), intExpr( 0)) <> "" or
        rangeFunction("1234567890", intExpr(11), intExpr( 1)) <> "" or
        rangeFunction("1234567890", intExpr(11), intExpr( 5)) <> "" or
        rangeFunction("1234567890", intExpr(11), intExpr(10)) <> "" or
        rangeFunction("1234567890", intExpr(11), intExpr(11)) <> "" or
        rangeFunction("1234567890", intExpr(11), intExpr(15)) <> "" or
        rangeFunction("1234567890", intExpr(15), intExpr(-5)) <> "" or
        rangeFunction("1234567890", intExpr(15), intExpr( 0)) <> "" or
        rangeFunction("1234567890", intExpr(15), intExpr( 1)) <> "" or
        rangeFunction("1234567890", intExpr(15), intExpr( 5)) <> "" or
        rangeFunction("1234567890", intExpr(15), intExpr(10)) <> "" or
        rangeFunction("1234567890", intExpr(15), intExpr(11)) <> "" or
        rangeFunction("1234567890", intExpr(15), intExpr(15)) <> "" or
        rangeFunction("1234567890", intExpr(15), intExpr(20)) <> "" then
      writeln(" ***** STRING [ START .. STOP ] via a function does not work correct. (1)");
      okay := FALSE;
    end if;

    if  rangeFunction(striExpr(""), -5, -9) <> "" or
        rangeFunction(striExpr(""), -5, -6) <> "" or
        rangeFunction(striExpr(""), -5, -5) <> "" or
        rangeFunction(striExpr(""), -5, -4) <> "" or
        rangeFunction(striExpr(""), -5,  0) <> "" or
        rangeFunction(striExpr(""), -5,  1) <> "" or
        rangeFunction(striExpr(""), -5, 15) <> "" or
        rangeFunction(striExpr(""),  0, -9) <> "" or
        rangeFunction(striExpr(""),  0, -1) <> "" or
        rangeFunction(striExpr(""),  0,  0) <> "" or
        rangeFunction(striExpr(""),  0,  1) <> "" or
        rangeFunction(striExpr(""),  0, 15) <> "" or
        rangeFunction(striExpr(""),  1, -5) <> "" or
        rangeFunction(striExpr(""),  1,  0) <> "" or
        rangeFunction(striExpr(""),  1,  1) <> "" or
        rangeFunction(striExpr(""),  1,  2) <> "" or
        rangeFunction(striExpr(""),  1, 15) <> "" or
        rangeFunction(striExpr(""),  5, -5) <> "" or
        rangeFunction(striExpr(""),  5,  0) <> "" or
        rangeFunction(striExpr(""),  5,  1) <> "" or
        rangeFunction(striExpr(""),  5,  4) <> "" or
        rangeFunction(striExpr(""),  5,  5) <> "" or
        rangeFunction(striExpr(""),  5,  6) <> "" or
        rangeFunction(striExpr(""),  5, 15) <> "" or
        rangeFunction(striExpr("1"), -5, -9) <> "" or
        rangeFunction(striExpr("1"), -5, -5) <> "" or
        rangeFunction(striExpr("1"), -5,  0) <> "" or
        rangeFunction(striExpr("1"), -5,  1) <> "1" or
        rangeFunction(striExpr("1"), -5,  2) <> "1" or
        rangeFunction(striExpr("1"), -5, 15) <> "1" or
        rangeFunction(striExpr("1"),  0, -5) <> "" or
        rangeFunction(striExpr("1"),  0,  0) <> "" or
        rangeFunction(striExpr("1"),  0,  1) <> "1" or
        rangeFunction(striExpr("1"),  0,  2) <> "1" or
        rangeFunction(striExpr("1"),  0, 15) <> "1" or
        rangeFunction(striExpr("1"),  1, -5) <> "" or
        rangeFunction(striExpr("1"),  1,  0) <> "" or
        rangeFunction(striExpr("1"),  1,  1) <> "1" or
        rangeFunction(striExpr("1"),  1,  2) <> "1" or
        rangeFunction(striExpr("1"),  1, 15) <> "1" or
        rangeFunction(striExpr("1"),  5, -5) <> "" or
        rangeFunction(striExpr("1"),  5,  0) <> "" or
        rangeFunction(striExpr("1"),  5,  1) <> "" or
        rangeFunction(striExpr("1"),  5,  4) <> "" or
        rangeFunction(striExpr("1"),  5,  5) <> "" or
        rangeFunction(striExpr("1"),  5,  6) <> "" or
        rangeFunction(striExpr("1"),  5, 15) <> "" or
        rangeFunction(striExpr("1234567890"), -5, -9) <> "" or
        rangeFunction(striExpr("1234567890"), -5, -5) <> "" or
        rangeFunction(striExpr("1234567890"), -5,  0) <> "" or
        rangeFunction(striExpr("1234567890"), -5,  1) <> "1" or
        rangeFunction(striExpr("1234567890"), -5,  5) <> "12345" or
        rangeFunction(striExpr("1234567890"), -5,  9) <> "123456789" or
        rangeFunction(striExpr("1234567890"), -5, 10) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), -5, 11) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), -5, 15) <> "1234567890" or
        rangeFunction(striExpr("1234567890"),  0, -5) <> "" or
        rangeFunction(striExpr("1234567890"),  0,  0) <> "" or
        rangeFunction(striExpr("1234567890"),  0,  1) <> "1" or
        rangeFunction(striExpr("1234567890"),  0,  5) <> "12345" or
        rangeFunction(striExpr("1234567890"),  0,  9) <> "123456789" or
        rangeFunction(striExpr("1234567890"),  0, 10) <> "1234567890" or
        rangeFunction(striExpr("1234567890"),  0, 11) <> "1234567890" or
        rangeFunction(striExpr("1234567890"),  0, 15) <> "1234567890" or
        rangeFunction(striExpr("1234567890"),  1, -5) <> "" or
        rangeFunction(striExpr("1234567890"),  1,  0) <> "" or
        rangeFunction(striExpr("1234567890"),  1,  1) <> "1" or
        rangeFunction(striExpr("1234567890"),  1,  5) <> "12345" or
        rangeFunction(striExpr("1234567890"),  1,  9) <> "123456789" or
        rangeFunction(striExpr("1234567890"),  1, 10) <> "1234567890" or
        rangeFunction(striExpr("1234567890"),  1, 11) <> "1234567890" or
        rangeFunction(striExpr("1234567890"),  1, 15) <> "1234567890" or
        rangeFunction(striExpr("1234567890"),  5, -5) <> "" or
        rangeFunction(striExpr("1234567890"),  5,  0) <> "" or
        rangeFunction(striExpr("1234567890"),  5,  1) <> "" or
        rangeFunction(striExpr("1234567890"),  5,  4) <> "" or
        rangeFunction(striExpr("1234567890"),  5,  5) <> "5" or
        rangeFunction(striExpr("1234567890"),  5,  6) <> "56" or
        rangeFunction(striExpr("1234567890"),  5,  9) <> "56789" or
        rangeFunction(striExpr("1234567890"),  5, 10) <> "567890" or
        rangeFunction(striExpr("1234567890"),  5, 11) <> "567890" or
        rangeFunction(striExpr("1234567890"),  5, 15) <> "567890" or
        rangeFunction(striExpr("1234567890"), 10, -5) <> "" or
        rangeFunction(striExpr("1234567890"), 10,  0) <> "" or
        rangeFunction(striExpr("1234567890"), 10,  1) <> "" or
        rangeFunction(striExpr("1234567890"), 10,  9) <> "" or
        rangeFunction(striExpr("1234567890"), 10, 10) <> "0" or
        rangeFunction(striExpr("1234567890"), 10, 11) <> "0" or
        rangeFunction(striExpr("1234567890"), 10, 15) <> "0" or
        rangeFunction(striExpr("1234567890"), 11, -5) <> "" or
        rangeFunction(striExpr("1234567890"), 11,  0) <> "" or
        rangeFunction(striExpr("1234567890"), 11,  1) <> "" or
        rangeFunction(striExpr("1234567890"), 11,  5) <> "" or
        rangeFunction(striExpr("1234567890"), 11, 10) <> "" or
        rangeFunction(striExpr("1234567890"), 11, 11) <> "" or
        rangeFunction(striExpr("1234567890"), 11, 15) <> "" or
        rangeFunction(striExpr("1234567890"), 15, -5) <> "" or
        rangeFunction(striExpr("1234567890"), 15,  0) <> "" or
        rangeFunction(striExpr("1234567890"), 15,  1) <> "" or
        rangeFunction(striExpr("1234567890"), 15,  5) <> "" or
        rangeFunction(striExpr("1234567890"), 15, 10) <> "" or
        rangeFunction(striExpr("1234567890"), 15, 11) <> "" or
        rangeFunction(striExpr("1234567890"), 15, 15) <> "" or
        rangeFunction(striExpr("1234567890"), 15, 20) <> "" or
        rangeFunction(striExpr(""), -5, intExpr(-9)) <> "" or
        rangeFunction(striExpr(""), -5, intExpr(-6)) <> "" or
        rangeFunction(striExpr(""), -5, intExpr(-5)) <> "" or
        rangeFunction(striExpr(""), -5, intExpr(-4)) <> "" or
        rangeFunction(striExpr(""), -5, intExpr( 0)) <> "" or
        rangeFunction(striExpr(""), -5, intExpr( 1)) <> "" or
        rangeFunction(striExpr(""), -5, intExpr(15)) <> "" or
        rangeFunction(striExpr(""),  0, intExpr(-9)) <> "" or
        rangeFunction(striExpr(""),  0, intExpr(-1)) <> "" or
        rangeFunction(striExpr(""),  0, intExpr( 0)) <> "" or
        rangeFunction(striExpr(""),  0, intExpr( 1)) <> "" or
        rangeFunction(striExpr(""),  0, intExpr(15)) <> "" or
        rangeFunction(striExpr(""),  1, intExpr(-5)) <> "" or
        rangeFunction(striExpr(""),  1, intExpr( 0)) <> "" or
        rangeFunction(striExpr(""),  1, intExpr( 1)) <> "" or
        rangeFunction(striExpr(""),  1, intExpr( 2)) <> "" or
        rangeFunction(striExpr(""),  1, intExpr(15)) <> "" or
        rangeFunction(striExpr(""),  5, intExpr(-5)) <> "" or
        rangeFunction(striExpr(""),  5, intExpr( 0)) <> "" or
        rangeFunction(striExpr(""),  5, intExpr( 1)) <> "" or
        rangeFunction(striExpr(""),  5, intExpr( 4)) <> "" or
        rangeFunction(striExpr(""),  5, intExpr( 5)) <> "" or
        rangeFunction(striExpr(""),  5, intExpr( 6)) <> "" or
        rangeFunction(striExpr(""),  5, intExpr(15)) <> "" or
        rangeFunction(striExpr("1"), -5, intExpr(-9)) <> "" or
        rangeFunction(striExpr("1"), -5, intExpr(-5)) <> "" or
        rangeFunction(striExpr("1"), -5, intExpr( 0)) <> "" or
        rangeFunction(striExpr("1"), -5, intExpr( 1)) <> "1" or
        rangeFunction(striExpr("1"), -5, intExpr( 2)) <> "1" or
        rangeFunction(striExpr("1"), -5, intExpr(15)) <> "1" or
        rangeFunction(striExpr("1"),  0, intExpr(-5)) <> "" or
        rangeFunction(striExpr("1"),  0, intExpr( 0)) <> "" or
        rangeFunction(striExpr("1"),  0, intExpr( 1)) <> "1" or
        rangeFunction(striExpr("1"),  0, intExpr( 2)) <> "1" or
        rangeFunction(striExpr("1"),  0, intExpr(15)) <> "1" or
        rangeFunction(striExpr("1"),  1, intExpr(-5)) <> "" or
        rangeFunction(striExpr("1"),  1, intExpr( 0)) <> "" or
        rangeFunction(striExpr("1"),  1, intExpr( 1)) <> "1" or
        rangeFunction(striExpr("1"),  1, intExpr( 2)) <> "1" or
        rangeFunction(striExpr("1"),  1, intExpr(15)) <> "1" or
        rangeFunction(striExpr("1"),  5, intExpr(-5)) <> "" or
        rangeFunction(striExpr("1"),  5, intExpr( 0)) <> "" or
        rangeFunction(striExpr("1"),  5, intExpr( 1)) <> "" or
        rangeFunction(striExpr("1"),  5, intExpr( 4)) <> "" or
        rangeFunction(striExpr("1"),  5, intExpr( 5)) <> "" or
        rangeFunction(striExpr("1"),  5, intExpr( 6)) <> "" or
        rangeFunction(striExpr("1"),  5, intExpr(15)) <> "" or
        rangeFunction(striExpr("1234567890"), -5, intExpr(-9)) <> "" or
        rangeFunction(striExpr("1234567890"), -5, intExpr(-5)) <> "" or
        rangeFunction(striExpr("1234567890"), -5, intExpr( 0)) <> "" or
        rangeFunction(striExpr("1234567890"), -5, intExpr( 1)) <> "1" or
        rangeFunction(striExpr("1234567890"), -5, intExpr( 5)) <> "12345" or
        rangeFunction(striExpr("1234567890"), -5, intExpr( 9)) <> "123456789" or
        rangeFunction(striExpr("1234567890"), -5, intExpr(10)) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), -5, intExpr(11)) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), -5, intExpr(15)) <> "1234567890" or
        rangeFunction(striExpr("1234567890"),  0, intExpr(-5)) <> "" or
        rangeFunction(striExpr("1234567890"),  0, intExpr( 0)) <> "" or
        rangeFunction(striExpr("1234567890"),  0, intExpr( 1)) <> "1" or
        rangeFunction(striExpr("1234567890"),  0, intExpr( 5)) <> "12345" or
        rangeFunction(striExpr("1234567890"),  0, intExpr( 9)) <> "123456789" or
        rangeFunction(striExpr("1234567890"),  0, intExpr(10)) <> "1234567890" or
        rangeFunction(striExpr("1234567890"),  0, intExpr(11)) <> "1234567890" or
        rangeFunction(striExpr("1234567890"),  0, intExpr(15)) <> "1234567890" or
        rangeFunction(striExpr("1234567890"),  1, intExpr(-5)) <> "" or
        rangeFunction(striExpr("1234567890"),  1, intExpr( 0)) <> "" or
        rangeFunction(striExpr("1234567890"),  1, intExpr( 1)) <> "1" or
        rangeFunction(striExpr("1234567890"),  1, intExpr( 5)) <> "12345" or
        rangeFunction(striExpr("1234567890"),  1, intExpr( 9)) <> "123456789" or
        rangeFunction(striExpr("1234567890"),  1, intExpr(10)) <> "1234567890" or
        rangeFunction(striExpr("1234567890"),  1, intExpr(11)) <> "1234567890" or
        rangeFunction(striExpr("1234567890"),  1, intExpr(15)) <> "1234567890" or
        rangeFunction(striExpr("1234567890"),  5, intExpr(-5)) <> "" or
        rangeFunction(striExpr("1234567890"),  5, intExpr( 0)) <> "" or
        rangeFunction(striExpr("1234567890"),  5, intExpr( 1)) <> "" or
        rangeFunction(striExpr("1234567890"),  5, intExpr( 4)) <> "" or
        rangeFunction(striExpr("1234567890"),  5, intExpr( 5)) <> "5" or
        rangeFunction(striExpr("1234567890"),  5, intExpr( 6)) <> "56" or
        rangeFunction(striExpr("1234567890"),  5, intExpr( 9)) <> "56789" or
        rangeFunction(striExpr("1234567890"),  5, intExpr(10)) <> "567890" or
        rangeFunction(striExpr("1234567890"),  5, intExpr(11)) <> "567890" or
        rangeFunction(striExpr("1234567890"),  5, intExpr(15)) <> "567890" or
        rangeFunction(striExpr("1234567890"), 10, intExpr(-5)) <> "" or
        rangeFunction(striExpr("1234567890"), 10, intExpr( 0)) <> "" or
        rangeFunction(striExpr("1234567890"), 10, intExpr( 1)) <> "" or
        rangeFunction(striExpr("1234567890"), 10, intExpr( 9)) <> "" or
        rangeFunction(striExpr("1234567890"), 10, intExpr(10)) <> "0" or
        rangeFunction(striExpr("1234567890"), 10, intExpr(11)) <> "0" or
        rangeFunction(striExpr("1234567890"), 10, intExpr(15)) <> "0" or
        rangeFunction(striExpr("1234567890"), 11, intExpr(-5)) <> "" or
        rangeFunction(striExpr("1234567890"), 11, intExpr( 0)) <> "" or
        rangeFunction(striExpr("1234567890"), 11, intExpr( 1)) <> "" or
        rangeFunction(striExpr("1234567890"), 11, intExpr( 5)) <> "" or
        rangeFunction(striExpr("1234567890"), 11, intExpr(10)) <> "" or
        rangeFunction(striExpr("1234567890"), 11, intExpr(11)) <> "" or
        rangeFunction(striExpr("1234567890"), 11, intExpr(15)) <> "" or
        rangeFunction(striExpr("1234567890"), 15, intExpr(-5)) <> "" or
        rangeFunction(striExpr("1234567890"), 15, intExpr( 0)) <> "" or
        rangeFunction(striExpr("1234567890"), 15, intExpr( 1)) <> "" or
        rangeFunction(striExpr("1234567890"), 15, intExpr( 5)) <> "" or
        rangeFunction(striExpr("1234567890"), 15, intExpr(10)) <> "" or
        rangeFunction(striExpr("1234567890"), 15, intExpr(11)) <> "" or
        rangeFunction(striExpr("1234567890"), 15, intExpr(15)) <> "" or
        rangeFunction(striExpr("1234567890"), 15, intExpr(20)) <> "" or
        rangeFunction(striExpr(""), intExpr(-5), -9) <> "" or
        rangeFunction(striExpr(""), intExpr(-5), -6) <> "" or
        rangeFunction(striExpr(""), intExpr(-5), -5) <> "" or
        rangeFunction(striExpr(""), intExpr(-5), -4) <> "" or
        rangeFunction(striExpr(""), intExpr(-5),  0) <> "" or
        rangeFunction(striExpr(""), intExpr(-5),  1) <> "" or
        rangeFunction(striExpr(""), intExpr(-5), 15) <> "" or
        rangeFunction(striExpr(""), intExpr( 0), -9) <> "" or
        rangeFunction(striExpr(""), intExpr( 0), -1) <> "" or
        rangeFunction(striExpr(""), intExpr( 0),  0) <> "" or
        rangeFunction(striExpr(""), intExpr( 0),  1) <> "" or
        rangeFunction(striExpr(""), intExpr( 0), 15) <> "" or
        rangeFunction(striExpr(""), intExpr( 1), -5) <> "" or
        rangeFunction(striExpr(""), intExpr( 1),  0) <> "" or
        rangeFunction(striExpr(""), intExpr( 1),  1) <> "" or
        rangeFunction(striExpr(""), intExpr( 1),  2) <> "" or
        rangeFunction(striExpr(""), intExpr( 1), 15) <> "" or
        rangeFunction(striExpr(""), intExpr( 5), -5) <> "" or
        rangeFunction(striExpr(""), intExpr( 5),  0) <> "" or
        rangeFunction(striExpr(""), intExpr( 5),  1) <> "" or
        rangeFunction(striExpr(""), intExpr( 5),  4) <> "" or
        rangeFunction(striExpr(""), intExpr( 5),  5) <> "" or
        rangeFunction(striExpr(""), intExpr( 5),  6) <> "" or
        rangeFunction(striExpr(""), intExpr( 5), 15) <> "" or
        rangeFunction(striExpr("1"), intExpr(-5), -9) <> "" or
        rangeFunction(striExpr("1"), intExpr(-5), -5) <> "" or
        rangeFunction(striExpr("1"), intExpr(-5),  0) <> "" or
        rangeFunction(striExpr("1"), intExpr(-5),  1) <> "1" or
        rangeFunction(striExpr("1"), intExpr(-5),  2) <> "1" or
        rangeFunction(striExpr("1"), intExpr(-5), 15) <> "1" or
        rangeFunction(striExpr("1"), intExpr( 0), -5) <> "" or
        rangeFunction(striExpr("1"), intExpr( 0),  0) <> "" or
        rangeFunction(striExpr("1"), intExpr( 0),  1) <> "1" or
        rangeFunction(striExpr("1"), intExpr( 0),  2) <> "1" or
        rangeFunction(striExpr("1"), intExpr( 0), 15) <> "1" or
        rangeFunction(striExpr("1"), intExpr( 1), -5) <> "" or
        rangeFunction(striExpr("1"), intExpr( 1),  0) <> "" or
        rangeFunction(striExpr("1"), intExpr( 1),  1) <> "1" or
        rangeFunction(striExpr("1"), intExpr( 1),  2) <> "1" or
        rangeFunction(striExpr("1"), intExpr( 1), 15) <> "1" or
        rangeFunction(striExpr("1"), intExpr( 5), -5) <> "" or
        rangeFunction(striExpr("1"), intExpr( 5),  0) <> "" or
        rangeFunction(striExpr("1"), intExpr( 5),  1) <> "" or
        rangeFunction(striExpr("1"), intExpr( 5),  4) <> "" or
        rangeFunction(striExpr("1"), intExpr( 5),  5) <> "" or
        rangeFunction(striExpr("1"), intExpr( 5),  6) <> "" or
        rangeFunction(striExpr("1"), intExpr( 5), 15) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(-5), -9) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(-5), -5) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(-5),  0) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(-5),  1) <> "1" or
        rangeFunction(striExpr("1234567890"), intExpr(-5),  5) <> "12345" or
        rangeFunction(striExpr("1234567890"), intExpr(-5),  9) <> "123456789" or
        rangeFunction(striExpr("1234567890"), intExpr(-5), 10) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), intExpr(-5), 11) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), intExpr(-5), 15) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), intExpr( 0), -5) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr( 0),  0) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr( 0),  1) <> "1" or
        rangeFunction(striExpr("1234567890"), intExpr( 0),  5) <> "12345" or
        rangeFunction(striExpr("1234567890"), intExpr( 0),  9) <> "123456789" or
        rangeFunction(striExpr("1234567890"), intExpr( 0), 10) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), intExpr( 0), 11) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), intExpr( 0), 15) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), intExpr( 1), -5) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr( 1),  0) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr( 1),  1) <> "1" or
        rangeFunction(striExpr("1234567890"), intExpr( 1),  5) <> "12345" or
        rangeFunction(striExpr("1234567890"), intExpr( 1),  9) <> "123456789" or
        rangeFunction(striExpr("1234567890"), intExpr( 1), 10) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), intExpr( 1), 11) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), intExpr( 1), 15) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), intExpr( 5), -5) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr( 5),  0) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr( 5),  1) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr( 5),  4) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr( 5),  5) <> "5" or
        rangeFunction(striExpr("1234567890"), intExpr( 5),  6) <> "56" or
        rangeFunction(striExpr("1234567890"), intExpr( 5),  9) <> "56789" or
        rangeFunction(striExpr("1234567890"), intExpr( 5), 10) <> "567890" or
        rangeFunction(striExpr("1234567890"), intExpr( 5), 11) <> "567890" or
        rangeFunction(striExpr("1234567890"), intExpr( 5), 15) <> "567890" or
        rangeFunction(striExpr("1234567890"), intExpr(10), -5) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(10),  0) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(10),  1) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(10),  9) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(10), 10) <> "0" or
        rangeFunction(striExpr("1234567890"), intExpr(10), 11) <> "0" or
        rangeFunction(striExpr("1234567890"), intExpr(10), 15) <> "0" or
        rangeFunction(striExpr("1234567890"), intExpr(11), -5) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(11),  0) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(11),  1) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(11),  5) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(11), 10) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(11), 11) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(11), 15) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(15), -5) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(15),  0) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(15),  1) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(15),  5) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(15), 10) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(15), 11) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(15), 15) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(15), 20) <> "" or
        rangeFunction(striExpr(""), intExpr(-5), intExpr(-9)) <> "" or
        rangeFunction(striExpr(""), intExpr(-5), intExpr(-6)) <> "" or
        rangeFunction(striExpr(""), intExpr(-5), intExpr(-5)) <> "" or
        rangeFunction(striExpr(""), intExpr(-5), intExpr(-4)) <> "" or
        rangeFunction(striExpr(""), intExpr(-5), intExpr( 0)) <> "" or
        rangeFunction(striExpr(""), intExpr(-5), intExpr( 1)) <> "" or
        rangeFunction(striExpr(""), intExpr(-5), intExpr(15)) <> "" or
        rangeFunction(striExpr(""), intExpr( 0), intExpr(-9)) <> "" or
        rangeFunction(striExpr(""), intExpr( 0), intExpr(-1)) <> "" or
        rangeFunction(striExpr(""), intExpr( 0), intExpr( 0)) <> "" or
        rangeFunction(striExpr(""), intExpr( 0), intExpr( 1)) <> "" or
        rangeFunction(striExpr(""), intExpr( 0), intExpr(15)) <> "" or
        rangeFunction(striExpr(""), intExpr( 1), intExpr(-5)) <> "" or
        rangeFunction(striExpr(""), intExpr( 1), intExpr( 0)) <> "" or
        rangeFunction(striExpr(""), intExpr( 1), intExpr( 1)) <> "" or
        rangeFunction(striExpr(""), intExpr( 1), intExpr( 2)) <> "" or
        rangeFunction(striExpr(""), intExpr( 1), intExpr(15)) <> "" or
        rangeFunction(striExpr(""), intExpr( 5), intExpr(-5)) <> "" or
        rangeFunction(striExpr(""), intExpr( 5), intExpr( 0)) <> "" or
        rangeFunction(striExpr(""), intExpr( 5), intExpr( 1)) <> "" or
        rangeFunction(striExpr(""), intExpr( 5), intExpr( 4)) <> "" or
        rangeFunction(striExpr(""), intExpr( 5), intExpr( 5)) <> "" or
        rangeFunction(striExpr(""), intExpr( 5), intExpr( 6)) <> "" or
        rangeFunction(striExpr(""), intExpr( 5), intExpr(15)) <> "" or
        rangeFunction(striExpr("1"), intExpr(-5), intExpr(-9)) <> "" or
        rangeFunction(striExpr("1"), intExpr(-5), intExpr(-5)) <> "" or
        rangeFunction(striExpr("1"), intExpr(-5), intExpr( 0)) <> "" or
        rangeFunction(striExpr("1"), intExpr(-5), intExpr( 1)) <> "1" or
        rangeFunction(striExpr("1"), intExpr(-5), intExpr( 2)) <> "1" or
        rangeFunction(striExpr("1"), intExpr(-5), intExpr(15)) <> "1" or
        rangeFunction(striExpr("1"), intExpr( 0), intExpr(-5)) <> "" or
        rangeFunction(striExpr("1"), intExpr( 0), intExpr( 0)) <> "" or
        rangeFunction(striExpr("1"), intExpr( 0), intExpr( 1)) <> "1" or
        rangeFunction(striExpr("1"), intExpr( 0), intExpr( 2)) <> "1" or
        rangeFunction(striExpr("1"), intExpr( 0), intExpr(15)) <> "1" or
        rangeFunction(striExpr("1"), intExpr( 1), intExpr(-5)) <> "" or
        rangeFunction(striExpr("1"), intExpr( 1), intExpr( 0)) <> "" or
        rangeFunction(striExpr("1"), intExpr( 1), intExpr( 1)) <> "1" or
        rangeFunction(striExpr("1"), intExpr( 1), intExpr( 2)) <> "1" or
        rangeFunction(striExpr("1"), intExpr( 1), intExpr(15)) <> "1" or
        rangeFunction(striExpr("1"), intExpr( 5), intExpr(-5)) <> "" or
        rangeFunction(striExpr("1"), intExpr( 5), intExpr( 0)) <> "" or
        rangeFunction(striExpr("1"), intExpr( 5), intExpr( 1)) <> "" or
        rangeFunction(striExpr("1"), intExpr( 5), intExpr( 4)) <> "" or
        rangeFunction(striExpr("1"), intExpr( 5), intExpr( 5)) <> "" or
        rangeFunction(striExpr("1"), intExpr( 5), intExpr( 6)) <> "" or
        rangeFunction(striExpr("1"), intExpr( 5), intExpr(15)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(-5), intExpr(-9)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(-5), intExpr(-5)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(-5), intExpr( 0)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(-5), intExpr( 1)) <> "1" or
        rangeFunction(striExpr("1234567890"), intExpr(-5), intExpr( 5)) <> "12345" or
        rangeFunction(striExpr("1234567890"), intExpr(-5), intExpr( 9)) <> "123456789" or
        rangeFunction(striExpr("1234567890"), intExpr(-5), intExpr(10)) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), intExpr(-5), intExpr(11)) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), intExpr(-5), intExpr(15)) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), intExpr( 0), intExpr(-5)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr( 0), intExpr( 0)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr( 0), intExpr( 1)) <> "1" or
        rangeFunction(striExpr("1234567890"), intExpr( 0), intExpr( 5)) <> "12345" or
        rangeFunction(striExpr("1234567890"), intExpr( 0), intExpr( 9)) <> "123456789" or
        rangeFunction(striExpr("1234567890"), intExpr( 0), intExpr(10)) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), intExpr( 0), intExpr(11)) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), intExpr( 0), intExpr(15)) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), intExpr( 1), intExpr(-5)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr( 1), intExpr( 0)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr( 1), intExpr( 1)) <> "1" or
        rangeFunction(striExpr("1234567890"), intExpr( 1), intExpr( 5)) <> "12345" or
        rangeFunction(striExpr("1234567890"), intExpr( 1), intExpr( 9)) <> "123456789" or
        rangeFunction(striExpr("1234567890"), intExpr( 1), intExpr(10)) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), intExpr( 1), intExpr(11)) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), intExpr( 1), intExpr(15)) <> "1234567890" or
        rangeFunction(striExpr("1234567890"), intExpr( 5), intExpr(-5)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr( 5), intExpr( 0)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr( 5), intExpr( 1)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr( 5), intExpr( 4)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr( 5), intExpr( 5)) <> "5" or
        rangeFunction(striExpr("1234567890"), intExpr( 5), intExpr( 6)) <> "56" or
        rangeFunction(striExpr("1234567890"), intExpr( 5), intExpr( 9)) <> "56789" or
        rangeFunction(striExpr("1234567890"), intExpr( 5), intExpr(10)) <> "567890" or
        rangeFunction(striExpr("1234567890"), intExpr( 5), intExpr(11)) <> "567890" or
        rangeFunction(striExpr("1234567890"), intExpr( 5), intExpr(15)) <> "567890" or
        rangeFunction(striExpr("1234567890"), intExpr(10), intExpr(-5)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(10), intExpr( 0)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(10), intExpr( 1)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(10), intExpr( 9)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(10), intExpr(10)) <> "0" or
        rangeFunction(striExpr("1234567890"), intExpr(10), intExpr(11)) <> "0" or
        rangeFunction(striExpr("1234567890"), intExpr(10), intExpr(15)) <> "0" or
        rangeFunction(striExpr("1234567890"), intExpr(11), intExpr(-5)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(11), intExpr( 0)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(11), intExpr( 1)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(11), intExpr( 5)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(11), intExpr(10)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(11), intExpr(11)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(11), intExpr(15)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(15), intExpr(-5)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(15), intExpr( 0)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(15), intExpr( 1)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(15), intExpr( 5)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(15), intExpr(10)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(15), intExpr(11)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(15), intExpr(15)) <> "" or
        rangeFunction(striExpr("1234567890"), intExpr(15), intExpr(20)) <> "" then
      writeln(" ***** STRING [ START .. STOP ] via a function does not work correct. (2)");
      okay := FALSE;
    end if;

    if  "" [-2147483643 .. pred(-2147483647)] <> "" or
        "" [-2147483644 .. pred(-2147483647)] <> "" or
        "" [-2147483645 .. pred(-2147483647)] <> "" or
        "" [-2147483646 .. pred(-2147483647)] <> "" or
        "" [-2147483647 .. pred(-2147483647)] <> "" or
        "" [pred(-2147483647) .. pred(-2147483647)] <> "" or
        "" [-2147483643 .. -2147483647] <> "" or
        "" [-2147483644 .. -2147483647] <> "" or
        "" [-2147483645 .. -2147483647] <> "" or
        "" [-2147483646 .. -2147483647] <> "" or
        "" [-2147483647 .. -2147483647] <> "" or
        "" [pred(-2147483647) .. -2147483647] <> "" or
        "" [-2147483643 .. 0] <> "" or
        "" [-2147483644 .. 0] <> "" or
        "" [-2147483645 .. 0] <> "" or
        "" [-2147483646 .. 0] <> "" or
        "" [-2147483647 .. 0] <> "" or
        "" [pred(-2147483647) .. 0] <> "" or
        "" [-2147483643 .. 1] <> "" or
        "" [-2147483644 .. 1] <> "" or
        "" [-2147483645 .. 1] <> "" or
        "" [-2147483646 .. 1] <> "" or
        "" [-2147483647 .. 1] <> "" or
        "" [pred(-2147483647) .. 1] <> "" or
        "" [-2147483643 .. 2147483647] <> "" or
        "" [-2147483644 .. 2147483647] <> "" or
        "" [-2147483645 .. 2147483647] <> "" or
        "" [-2147483646 .. 2147483647] <> "" or
        "" [-2147483647 .. 2147483647] <> "" or
        "" [pred(-2147483647) .. 2147483647] <> "" or
        "1" [-2147483643 .. pred(-2147483647)] <> "" or
        "1" [-2147483644 .. pred(-2147483647)] <> "" or
        "1" [-2147483645 .. pred(-2147483647)] <> "" or
        "1" [-2147483646 .. pred(-2147483647)] <> "" or
        "1" [-2147483647 .. pred(-2147483647)] <> "" or
        "1" [pred(-2147483647) .. pred(-2147483647)] <> "" or
        "1" [-2147483643 .. -2147483647] <> "" or
        "1" [-2147483644 .. -2147483647] <> "" or
        "1" [-2147483645 .. -2147483647] <> "" or
        "1" [-2147483646 .. -2147483647] <> "" or
        "1" [-2147483647 .. -2147483647] <> "" or
        "1" [pred(-2147483647) .. -2147483647] <> "" or
        "1" [-2147483643 .. 0] <> "" or
        "1" [-2147483644 .. 0] <> "" or
        "1" [-2147483645 .. 0] <> "" or
        "1" [-2147483646 .. 0] <> "" or
        "1" [-2147483647 .. 0] <> "" or
        "1" [pred(-2147483647) .. 0] <> "" or
        "1" [-2147483643 .. 1] <> "1" or
        "1" [-2147483644 .. 1] <> "1" or
        "1" [-2147483645 .. 1] <> "1" or
        "1" [-2147483646 .. 1] <> "1" or
        "1" [-2147483647 .. 1] <> "1" or
        "1" [pred(-2147483647) .. 1] <> "1" or
        "1" [-2147483643 .. 2] <> "1" or
        "1" [-2147483644 .. 2] <> "1" or
        "1" [-2147483645 .. 2] <> "1" or
        "1" [-2147483646 .. 2] <> "1" or
        "1" [-2147483647 .. 2] <> "1" or
        "1" [pred(-2147483647) .. 2] <> "1" or
        "1" [-2147483643 .. 2147483647] <> "1" or
        "1" [-2147483644 .. 2147483647] <> "1" or
        "1" [-2147483645 .. 2147483647] <> "1" or
        "1" [-2147483646 .. 2147483647] <> "1" or
        "1" [-2147483647 .. 2147483647] <> "1" or
        "1" [pred(-2147483647) .. 2147483647] <> "1" or
        "12" [-2147483643 .. pred(-2147483647)] <> "" or
        "12" [-2147483644 .. pred(-2147483647)] <> "" or
        "12" [-2147483645 .. pred(-2147483647)] <> "" or
        "12" [-2147483646 .. pred(-2147483647)] <> "" or
        "12" [-2147483647 .. pred(-2147483647)] <> "" or
        "12" [pred(-2147483647) .. pred(-2147483647)] <> "" or
        "12" [-2147483643 .. -2147483647] <> "" or
        "12" [-2147483644 .. -2147483647] <> "" or
        "12" [-2147483645 .. -2147483647] <> "" or
        "12" [-2147483646 .. -2147483647] <> "" or
        "12" [-2147483647 .. -2147483647] <> "" or
        "12" [pred(-2147483647) .. -2147483647] <> "" or
        "12" [-2147483643 .. 0] <> "" or
        "12" [-2147483644 .. 0] <> "" or
        "12" [-2147483645 .. 0] <> "" or
        "12" [-2147483646 .. 0] <> "" or
        "12" [-2147483647 .. 0] <> "" or
        "12" [pred(-2147483647) .. 0] <> "" or
        "12" [-2147483643 .. 1] <> "1" or
        "12" [-2147483644 .. 1] <> "1" or
        "12" [-2147483645 .. 1] <> "1" or
        "12" [-2147483646 .. 1] <> "1" or
        "12" [-2147483647 .. 1] <> "1" or
        "12" [pred(-2147483647) .. 1] <> "1" or
        "12" [-2147483643 .. 2] <> "12" or
        "12" [-2147483644 .. 2] <> "12" or
        "12" [-2147483645 .. 2] <> "12" or
        "12" [-2147483646 .. 2] <> "12" or
        "12" [-2147483647 .. 2] <> "12" or
        "12" [pred(-2147483647) .. 2] <> "12" or
        "12" [-2147483643 .. 3] <> "12" or
        "12" [-2147483644 .. 3] <> "12" or
        "12" [-2147483645 .. 3] <> "12" or
        "12" [-2147483646 .. 3] <> "12" or
        "12" [-2147483647 .. 3] <> "12" or
        "12" [pred(-2147483647) .. 3] <> "12" or
        "12" [-2147483643 .. 2147483647] <> "12" or
        "12" [-2147483644 .. 2147483647] <> "12" or
        "12" [-2147483645 .. 2147483647] <> "12" or
        "12" [-2147483646 .. 2147483647] <> "12" or
        "12" [-2147483647 .. 2147483647] <> "12" or
        "12" [pred(-2147483647) .. 2147483647] <> "12" then
      writeln(" ***** STRING [ START .. STOP ] does not work correct.");
      okay := FALSE;
    end if;

    if okay then
      writeln("String range works correct.");
    end if;
  end func;


const func string: substrFunction (in string: stri, in integer: start) is
  return stri[start len 1];


const func string: substrFunction (in string: stri, in integer: start, in integer: length) is
  return stri[start len length];


const proc: check_string_substr is func
  local
    var boolean: okay is TRUE;
    var boolean: ok is TRUE;
    var string: stri is "";
  begin
    if  "" [ -5 len -9 ] <> "" or
        "" [ -5 len -5 ] <> "" or
        "" [ -5 len  0 ] <> "" or
        "" [ -5 len  1 ] <> "" or
        "" [ -5 len  6 ] <> "" or
        "" [ -5 len  7 ] <> "" or
        "" [ -5 len  8 ] <> "" or
        "" [ -5 len 20 ] <> "" or
        "" [  0 len -5 ] <> "" or
        "" [  0 len  0 ] <> "" or
        "" [  0 len  1 ] <> "" or
        "" [  0 len  2 ] <> "" or
        "" [  0 len 15 ] <> "" or
        "" [  1 len -5 ] <> "" or
        "" [  1 len  0 ] <> "" or
        "" [  1 len  1 ] <> "" or
        "" [  1 len  2 ] <> "" or
        "" [  1 len 15 ] <> "" or
        "" [  2 len -5 ] <> "" or
        "" [  2 len  0 ] <> "" or
        "" [  2 len  1 ] <> "" or
        "" [  2 len 15 ] <> "" or
        "" [ 15 len -5 ] <> "" or
        "" [ 15 len  0 ] <> "" or
        "" [ 15 len  1 ] <> "" or
        "" [ 15 len  2 ] <> "" or
        "" [ 15 len 20 ] <> "" or
        "1" [ -5 len -9 ] <> "" or
        "1" [ -5 len -5 ] <> "" or
        "1" [ -5 len  0 ] <> "" or
        "1" [ -5 len  1 ] <> "" or
        "1" [ -5 len  6 ] <> "" or
        "1" [ -5 len  7 ] <> "1" or
        "1" [ -5 len  8 ] <> "1" or
        "1" [ -5 len 10 ] <> "1" or
        "1" [  0 len -5 ] <> "" or
        "1" [  0 len  0 ] <> "" or
        "1" [  0 len  1 ] <> "" or
        "1" [  0 len  2 ] <> "1" or
        "1" [  0 len  3 ] <> "1" or
        "1" [  0 len 15 ] <> "1" or
        "1" [  1 len -5 ] <> "" or
        "1" [  1 len  0 ] <> "" or
        "1" [  1 len  1 ] <> "1" or
        "1" [  1 len  2 ] <> "1" or
        "1" [  1 len 15 ] <> "1" or
        "1" [  2 len -5 ] <> "" or
        "1" [  2 len  0 ] <> "" or
        "1" [  2 len  1 ] <> "" or
        "1" [  2 len  2 ] <> "" or
        "1" [  2 len 15 ] <> "" or
        "1" [ 15 len -5 ] <> "" or
        "1" [ 15 len  0 ] <> "" or
        "1" [ 15 len  1 ] <> "" or
        "1" [ 15 len  2 ] <> "" or
        "1" [ 15 len 20 ] <> "" or
        "1234567890" [ -5 len -9 ] <> "" or
        "1234567890" [ -5 len -5 ] <> "" or
        "1234567890" [ -5 len  0 ] <> "" or
        "1234567890" [ -5 len  1 ] <> "" or
        "1234567890" [ -5 len  6 ] <> "" or
        "1234567890" [ -5 len  7 ] <> "1" or
        "1234567890" [ -5 len  8 ] <> "12" or
        "1234567890" [ -5 len 11 ] <> "12345" or
        "1234567890" [ -5 len 15 ] <> "123456789" or
        "1234567890" [ -5 len 16 ] <> "1234567890" or
        "1234567890" [ -5 len 17 ] <> "1234567890" or
        "1234567890" [ -5 len 20 ] <> "1234567890" or
        "1234567890" [  0 len -5 ] <> "" or
        "1234567890" [  0 len -1 ] <> "" or
        "1234567890" [  0 len  0 ] <> "" or
        "1234567890" [  0 len  1 ] <> "" or
        "1234567890" [  0 len  2 ] <> "1" or
        "1234567890" [  0 len  3 ] <> "12" or
        "1234567890" [  0 len  6 ] <> "12345" or
        "1234567890" [  0 len 10 ] <> "123456789" or
        "1234567890" [  0 len 11 ] <> "1234567890" or
        "1234567890" [  0 len 12 ] <> "1234567890" or
        "1234567890" [  0 len 15 ] <> "1234567890" or
        "1234567890" [  1 len -5 ] <> "" or
        "1234567890" [  1 len -1 ] <> "" or
        "1234567890" [  1 len  0 ] <> "" or
        "1234567890" [  1 len  1 ] <> "1" or
        "1234567890" [  1 len  2 ] <> "12" or
        "1234567890" [  1 len  5 ] <> "12345" or
        "1234567890" [  1 len  9 ] <> "123456789" or
        "1234567890" [  1 len 10 ] <> "1234567890" or
        "1234567890" [  1 len 11 ] <> "1234567890" or
        "1234567890" [  1 len 15 ] <> "1234567890" or
        "1234567890" [  2 len -5 ] <> "" or
        "1234567890" [  2 len -1 ] <> "" or
        "1234567890" [  2 len  0 ] <> "" or
        "1234567890" [  2 len  1 ] <> "2" or
        "1234567890" [  2 len  2 ] <> "23" or
        "1234567890" [  2 len  5 ] <> "23456" or
        "1234567890" [  2 len  8 ] <> "23456789" or
        "1234567890" [  2 len  9 ] <> "234567890" or
        "1234567890" [  2 len 10 ] <> "234567890" or
        "1234567890" [  2 len 15 ] <> "234567890" or
        "1234567890" [  5 len -5 ] <> "" or
        "1234567890" [  5 len -1 ] <> "" or
        "1234567890" [  5 len  0 ] <> "" or
        "1234567890" [  5 len  1 ] <> "5" or
        "1234567890" [  5 len  2 ] <> "56" or
        "1234567890" [  5 len  5 ] <> "56789" or
        "1234567890" [  5 len  6 ] <> "567890" or
        "1234567890" [  5 len  7 ] <> "567890" or
        "1234567890" [  5 len 15 ] <> "567890" or
        "1234567890" [  9 len -5 ] <> "" or
        "1234567890" [  9 len -1 ] <> "" or
        "1234567890" [  9 len  0 ] <> "" or
        "1234567890" [  9 len  1 ] <> "9" or
        "1234567890" [  9 len  2 ] <> "90" or
        "1234567890" [  9 len  3 ] <> "90" or
        "1234567890" [  9 len 15 ] <> "90" or
        "1234567890" [ 10 len -5 ] <> "" or
        "1234567890" [ 10 len -1 ] <> "" or
        "1234567890" [ 10 len  0 ] <> "" or
        "1234567890" [ 10 len  1 ] <> "0" or
        "1234567890" [ 10 len  2 ] <> "0" or
        "1234567890" [ 10 len 15 ] <> "0" or
        "1234567890" [ 11 len -5 ] <> "" or
        "1234567890" [ 11 len  0 ] <> "" or
        "1234567890" [ 11 len  1 ] <> "" or
        "1234567890" [ 11 len  2 ] <> "" or
        "1234567890" [ 11 len 15 ] <> "" or
        "1234567890" [ 15 len -5 ] <> "" or
        "1234567890" [ 15 len  0 ] <> "" or
        "1234567890" [ 15 len  1 ] <> "" or
        "1234567890" [ 15 len  2 ] <> "" or
        "1234567890" [ 15 len 20 ] <> "" or
        "" [ -5 len intExpr(-9) ] <> "" or
        "" [ -5 len intExpr(-5) ] <> "" or
        "" [ -5 len intExpr( 0) ] <> "" or
        "" [ -5 len intExpr( 1) ] <> "" or
        "" [ -5 len intExpr( 6) ] <> "" or
        "" [ -5 len intExpr( 7) ] <> "" or
        "" [ -5 len intExpr( 8) ] <> "" or
        "" [ -5 len intExpr(20) ] <> "" or
        "" [  0 len intExpr(-5) ] <> "" or
        "" [  0 len intExpr( 0) ] <> "" or
        "" [  0 len intExpr( 1) ] <> "" or
        "" [  0 len intExpr( 2) ] <> "" or
        "" [  0 len intExpr(15) ] <> "" or
        "" [  1 len intExpr(-5) ] <> "" or
        "" [  1 len intExpr( 0) ] <> "" or
        "" [  1 len intExpr( 1) ] <> "" or
        "" [  1 len intExpr( 2) ] <> "" or
        "" [  1 len intExpr(15) ] <> "" or
        "" [  2 len intExpr(-5) ] <> "" or
        "" [  2 len intExpr( 0) ] <> "" or
        "" [  2 len intExpr( 1) ] <> "" or
        "" [  2 len intExpr(15) ] <> "" or
        "" [ 15 len intExpr(-5) ] <> "" or
        "" [ 15 len intExpr( 0) ] <> "" or
        "" [ 15 len intExpr( 1) ] <> "" or
        "" [ 15 len intExpr( 2) ] <> "" or
        "" [ 15 len intExpr(20) ] <> "" or
        "1" [ -5 len intExpr(-9) ] <> "" or
        "1" [ -5 len intExpr(-5) ] <> "" or
        "1" [ -5 len intExpr( 0) ] <> "" or
        "1" [ -5 len intExpr( 1) ] <> "" or
        "1" [ -5 len intExpr( 6) ] <> "" or
        "1" [ -5 len intExpr( 7) ] <> "1" or
        "1" [ -5 len intExpr( 8) ] <> "1" or
        "1" [ -5 len intExpr(10) ] <> "1" or
        "1" [  0 len intExpr(-5) ] <> "" or
        "1" [  0 len intExpr( 0) ] <> "" or
        "1" [  0 len intExpr( 1) ] <> "" or
        "1" [  0 len intExpr( 2) ] <> "1" or
        "1" [  0 len intExpr( 3) ] <> "1" or
        "1" [  0 len intExpr(15) ] <> "1" or
        "1" [  1 len intExpr(-5) ] <> "" or
        "1" [  1 len intExpr( 0) ] <> "" or
        "1" [  1 len intExpr( 1) ] <> "1" or
        "1" [  1 len intExpr( 2) ] <> "1" or
        "1" [  1 len intExpr(15) ] <> "1" or
        "1" [  2 len intExpr(-5) ] <> "" or
        "1" [  2 len intExpr( 0) ] <> "" or
        "1" [  2 len intExpr( 1) ] <> "" or
        "1" [  2 len intExpr( 2) ] <> "" or
        "1" [  2 len intExpr(15) ] <> "" or
        "1" [ 15 len intExpr(-5) ] <> "" or
        "1" [ 15 len intExpr( 0) ] <> "" or
        "1" [ 15 len intExpr( 1) ] <> "" or
        "1" [ 15 len intExpr( 2) ] <> "" or
        "1" [ 15 len intExpr(20) ] <> "" or
        "1234567890" [ -5 len intExpr(-9) ] <> "" or
        "1234567890" [ -5 len intExpr(-5) ] <> "" or
        "1234567890" [ -5 len intExpr( 0) ] <> "" or
        "1234567890" [ -5 len intExpr( 1) ] <> "" or
        "1234567890" [ -5 len intExpr( 6) ] <> "" or
        "1234567890" [ -5 len intExpr( 7) ] <> "1" or
        "1234567890" [ -5 len intExpr( 8) ] <> "12" or
        "1234567890" [ -5 len intExpr(11) ] <> "12345" or
        "1234567890" [ -5 len intExpr(15) ] <> "123456789" or
        "1234567890" [ -5 len intExpr(16) ] <> "1234567890" or
        "1234567890" [ -5 len intExpr(17) ] <> "1234567890" or
        "1234567890" [ -5 len intExpr(20) ] <> "1234567890" or
        "1234567890" [  0 len intExpr(-5) ] <> "" or
        "1234567890" [  0 len intExpr(-1) ] <> "" or
        "1234567890" [  0 len intExpr( 0) ] <> "" or
        "1234567890" [  0 len intExpr( 1) ] <> "" or
        "1234567890" [  0 len intExpr( 2) ] <> "1" or
        "1234567890" [  0 len intExpr( 3) ] <> "12" or
        "1234567890" [  0 len intExpr( 6) ] <> "12345" or
        "1234567890" [  0 len intExpr(10) ] <> "123456789" or
        "1234567890" [  0 len intExpr(11) ] <> "1234567890" or
        "1234567890" [  0 len intExpr(12) ] <> "1234567890" or
        "1234567890" [  0 len intExpr(15) ] <> "1234567890" or
        "1234567890" [  1 len intExpr(-5) ] <> "" or
        "1234567890" [  1 len intExpr(-1) ] <> "" or
        "1234567890" [  1 len intExpr( 0) ] <> "" or
        "1234567890" [  1 len intExpr( 1) ] <> "1" or
        "1234567890" [  1 len intExpr( 2) ] <> "12" or
        "1234567890" [  1 len intExpr( 5) ] <> "12345" or
        "1234567890" [  1 len intExpr( 9) ] <> "123456789" or
        "1234567890" [  1 len intExpr(10) ] <> "1234567890" or
        "1234567890" [  1 len intExpr(11) ] <> "1234567890" or
        "1234567890" [  1 len intExpr(15) ] <> "1234567890" or
        "1234567890" [  2 len intExpr(-5) ] <> "" or
        "1234567890" [  2 len intExpr(-1) ] <> "" or
        "1234567890" [  2 len intExpr( 0) ] <> "" or
        "1234567890" [  2 len intExpr( 1) ] <> "2" or
        "1234567890" [  2 len intExpr( 2) ] <> "23" or
        "1234567890" [  2 len intExpr( 5) ] <> "23456" or
        "1234567890" [  2 len intExpr( 8) ] <> "23456789" or
        "1234567890" [  2 len intExpr( 9) ] <> "234567890" or
        "1234567890" [  2 len intExpr(10) ] <> "234567890" or
        "1234567890" [  2 len intExpr(15) ] <> "234567890" or
        "1234567890" [  5 len intExpr(-5) ] <> "" or
        "1234567890" [  5 len intExpr(-1) ] <> "" or
        "1234567890" [  5 len intExpr( 0) ] <> "" or
        "1234567890" [  5 len intExpr( 1) ] <> "5" or
        "1234567890" [  5 len intExpr( 2) ] <> "56" or
        "1234567890" [  5 len intExpr( 5) ] <> "56789" or
        "1234567890" [  5 len intExpr( 6) ] <> "567890" or
        "1234567890" [  5 len intExpr( 7) ] <> "567890" or
        "1234567890" [  5 len intExpr(15) ] <> "567890" or
        "1234567890" [  9 len intExpr(-5) ] <> "" or
        "1234567890" [  9 len intExpr(-1) ] <> "" or
        "1234567890" [  9 len intExpr( 0) ] <> "" or
        "1234567890" [  9 len intExpr( 1) ] <> "9" or
        "1234567890" [  9 len intExpr( 2) ] <> "90" or
        "1234567890" [  9 len intExpr( 3) ] <> "90" or
        "1234567890" [  9 len intExpr(15) ] <> "90" or
        "1234567890" [ 10 len intExpr(-5) ] <> "" or
        "1234567890" [ 10 len intExpr(-1) ] <> "" or
        "1234567890" [ 10 len intExpr( 0) ] <> "" or
        "1234567890" [ 10 len intExpr( 1) ] <> "0" or
        "1234567890" [ 10 len intExpr( 2) ] <> "0" or
        "1234567890" [ 10 len intExpr(15) ] <> "0" or
        "1234567890" [ 11 len intExpr(-5) ] <> "" or
        "1234567890" [ 11 len intExpr( 0) ] <> "" or
        "1234567890" [ 11 len intExpr( 1) ] <> "" or
        "1234567890" [ 11 len intExpr( 2) ] <> "" or
        "1234567890" [ 11 len intExpr(15) ] <> "" or
        "1234567890" [ 15 len intExpr(-5) ] <> "" or
        "1234567890" [ 15 len intExpr( 0) ] <> "" or
        "1234567890" [ 15 len intExpr( 1) ] <> "" or
        "1234567890" [ 15 len intExpr( 2) ] <> "" or
        "1234567890" [ 15 len intExpr(20) ] <> "" or
        "" [ intExpr(-5) len -9 ] <> "" or
        "" [ intExpr(-5) len -5 ] <> "" or
        "" [ intExpr(-5) len  0 ] <> "" or
        "" [ intExpr(-5) len  1 ] <> "" or
        "" [ intExpr(-5) len  6 ] <> "" or
        "" [ intExpr(-5) len  7 ] <> "" or
        "" [ intExpr(-5) len  8 ] <> "" or
        "" [ intExpr(-5) len 20 ] <> "" or
        "" [ intExpr( 0) len -5 ] <> "" or
        "" [ intExpr( 0) len  0 ] <> "" or
        "" [ intExpr( 0) len  1 ] <> "" or
        "" [ intExpr( 0) len  2 ] <> "" or
        "" [ intExpr( 0) len 15 ] <> "" or
        "" [ intExpr( 1) len -5 ] <> "" or
        "" [ intExpr( 1) len  0 ] <> "" or
        "" [ intExpr( 1) len  1 ] <> "" or
        "" [ intExpr( 1) len  2 ] <> "" or
        "" [ intExpr( 1) len 15 ] <> "" or
        "" [ intExpr( 2) len -5 ] <> "" or
        "" [ intExpr( 2) len  0 ] <> "" or
        "" [ intExpr( 2) len  1 ] <> "" or
        "" [ intExpr( 2) len 15 ] <> "" or
        "" [ intExpr(15) len -5 ] <> "" or
        "" [ intExpr(15) len  0 ] <> "" or
        "" [ intExpr(15) len  1 ] <> "" or
        "" [ intExpr(15) len  2 ] <> "" or
        "" [ intExpr(15) len 20 ] <> "" or
        "1" [ intExpr(-5) len -9 ] <> "" or
        "1" [ intExpr(-5) len -5 ] <> "" or
        "1" [ intExpr(-5) len  0 ] <> "" or
        "1" [ intExpr(-5) len  1 ] <> "" or
        "1" [ intExpr(-5) len  6 ] <> "" or
        "1" [ intExpr(-5) len  7 ] <> "1" or
        "1" [ intExpr(-5) len  8 ] <> "1" or
        "1" [ intExpr(-5) len 10 ] <> "1" or
        "1" [ intExpr( 0) len -5 ] <> "" or
        "1" [ intExpr( 0) len  0 ] <> "" or
        "1" [ intExpr( 0) len  1 ] <> "" or
        "1" [ intExpr( 0) len  2 ] <> "1" or
        "1" [ intExpr( 0) len  3 ] <> "1" or
        "1" [ intExpr( 0) len 15 ] <> "1" or
        "1" [ intExpr( 1) len -5 ] <> "" or
        "1" [ intExpr( 1) len  0 ] <> "" or
        "1" [ intExpr( 1) len  1 ] <> "1" or
        "1" [ intExpr( 1) len  2 ] <> "1" or
        "1" [ intExpr( 1) len 15 ] <> "1" or
        "1" [ intExpr( 2) len -5 ] <> "" or
        "1" [ intExpr( 2) len  0 ] <> "" or
        "1" [ intExpr( 2) len  1 ] <> "" or
        "1" [ intExpr( 2) len  2 ] <> "" or
        "1" [ intExpr( 2) len 15 ] <> "" or
        "1" [ intExpr(15) len -5 ] <> "" or
        "1" [ intExpr(15) len  0 ] <> "" or
        "1" [ intExpr(15) len  1 ] <> "" or
        "1" [ intExpr(15) len  2 ] <> "" or
        "1" [ intExpr(15) len 20 ] <> "" or
        "1234567890" [ intExpr(-5) len -9 ] <> "" or
        "1234567890" [ intExpr(-5) len -5 ] <> "" or
        "1234567890" [ intExpr(-5) len  0 ] <> "" or
        "1234567890" [ intExpr(-5) len  1 ] <> "" or
        "1234567890" [ intExpr(-5) len  6 ] <> "" or
        "1234567890" [ intExpr(-5) len  7 ] <> "1" or
        "1234567890" [ intExpr(-5) len  8 ] <> "12" or
        "1234567890" [ intExpr(-5) len 11 ] <> "12345" or
        "1234567890" [ intExpr(-5) len 15 ] <> "123456789" or
        "1234567890" [ intExpr(-5) len 16 ] <> "1234567890" or
        "1234567890" [ intExpr(-5) len 17 ] <> "1234567890" or
        "1234567890" [ intExpr(-5) len 20 ] <> "1234567890" or
        "1234567890" [ intExpr( 0) len -5 ] <> "" or
        "1234567890" [ intExpr( 0) len -1 ] <> "" or
        "1234567890" [ intExpr( 0) len  0 ] <> "" or
        "1234567890" [ intExpr( 0) len  1 ] <> "" or
        "1234567890" [ intExpr( 0) len  2 ] <> "1" or
        "1234567890" [ intExpr( 0) len  3 ] <> "12" or
        "1234567890" [ intExpr( 0) len  6 ] <> "12345" or
        "1234567890" [ intExpr( 0) len 10 ] <> "123456789" or
        "1234567890" [ intExpr( 0) len 11 ] <> "1234567890" or
        "1234567890" [ intExpr( 0) len 12 ] <> "1234567890" or
        "1234567890" [ intExpr( 0) len 15 ] <> "1234567890" or
        "1234567890" [ intExpr( 1) len -5 ] <> "" or
        "1234567890" [ intExpr( 1) len -1 ] <> "" or
        "1234567890" [ intExpr( 1) len  0 ] <> "" or
        "1234567890" [ intExpr( 1) len  1 ] <> "1" or
        "1234567890" [ intExpr( 1) len  2 ] <> "12" or
        "1234567890" [ intExpr( 1) len  5 ] <> "12345" or
        "1234567890" [ intExpr( 1) len  9 ] <> "123456789" or
        "1234567890" [ intExpr( 1) len 10 ] <> "1234567890" or
        "1234567890" [ intExpr( 1) len 11 ] <> "1234567890" or
        "1234567890" [ intExpr( 1) len 15 ] <> "1234567890" or
        "1234567890" [ intExpr( 2) len -5 ] <> "" or
        "1234567890" [ intExpr( 2) len -1 ] <> "" or
        "1234567890" [ intExpr( 2) len  0 ] <> "" or
        "1234567890" [ intExpr( 2) len  1 ] <> "2" or
        "1234567890" [ intExpr( 2) len  2 ] <> "23" or
        "1234567890" [ intExpr( 2) len  5 ] <> "23456" or
        "1234567890" [ intExpr( 2) len  8 ] <> "23456789" or
        "1234567890" [ intExpr( 2) len  9 ] <> "234567890" or
        "1234567890" [ intExpr( 2) len 10 ] <> "234567890" or
        "1234567890" [ intExpr( 2) len 15 ] <> "234567890" or
        "1234567890" [ intExpr( 5) len -5 ] <> "" or
        "1234567890" [ intExpr( 5) len -1 ] <> "" or
        "1234567890" [ intExpr( 5) len  0 ] <> "" or
        "1234567890" [ intExpr( 5) len  1 ] <> "5" or
        "1234567890" [ intExpr( 5) len  2 ] <> "56" or
        "1234567890" [ intExpr( 5) len  5 ] <> "56789" or
        "1234567890" [ intExpr( 5) len  6 ] <> "567890" or
        "1234567890" [ intExpr( 5) len  7 ] <> "567890" or
        "1234567890" [ intExpr( 5) len 15 ] <> "567890" or
        "1234567890" [ intExpr( 9) len -5 ] <> "" or
        "1234567890" [ intExpr( 9) len -1 ] <> "" or
        "1234567890" [ intExpr( 9) len  0 ] <> "" or
        "1234567890" [ intExpr( 9) len  1 ] <> "9" or
        "1234567890" [ intExpr( 9) len  2 ] <> "90" or
        "1234567890" [ intExpr( 9) len  3 ] <> "90" or
        "1234567890" [ intExpr( 9) len 15 ] <> "90" or
        "1234567890" [ intExpr(10) len -5 ] <> "" or
        "1234567890" [ intExpr(10) len -1 ] <> "" or
        "1234567890" [ intExpr(10) len  0 ] <> "" or
        "1234567890" [ intExpr(10) len  1 ] <> "0" or
        "1234567890" [ intExpr(10) len  2 ] <> "0" or
        "1234567890" [ intExpr(10) len 15 ] <> "0" or
        "1234567890" [ intExpr(11) len -5 ] <> "" or
        "1234567890" [ intExpr(11) len  0 ] <> "" or
        "1234567890" [ intExpr(11) len  1 ] <> "" or
        "1234567890" [ intExpr(11) len  2 ] <> "" or
        "1234567890" [ intExpr(11) len 15 ] <> "" or
        "1234567890" [ intExpr(15) len -5 ] <> "" or
        "1234567890" [ intExpr(15) len  0 ] <> "" or
        "1234567890" [ intExpr(15) len  1 ] <> "" or
        "1234567890" [ intExpr(15) len  2 ] <> "" or
        "1234567890" [ intExpr(15) len 20 ] <> "" or
        "" [ intExpr(-5) len intExpr(-9) ] <> "" or
        "" [ intExpr(-5) len intExpr(-5) ] <> "" or
        "" [ intExpr(-5) len intExpr( 0) ] <> "" or
        "" [ intExpr(-5) len intExpr( 1) ] <> "" or
        "" [ intExpr(-5) len intExpr( 6) ] <> "" or
        "" [ intExpr(-5) len intExpr( 7) ] <> "" or
        "" [ intExpr(-5) len intExpr( 8) ] <> "" or
        "" [ intExpr(-5) len intExpr(20) ] <> "" or
        "" [ intExpr( 0) len intExpr(-5) ] <> "" or
        "" [ intExpr( 0) len intExpr( 0) ] <> "" or
        "" [ intExpr( 0) len intExpr( 1) ] <> "" or
        "" [ intExpr( 0) len intExpr( 2) ] <> "" or
        "" [ intExpr( 0) len intExpr(15) ] <> "" or
        "" [ intExpr( 1) len intExpr(-5) ] <> "" or
        "" [ intExpr( 1) len intExpr( 0) ] <> "" or
        "" [ intExpr( 1) len intExpr( 1) ] <> "" or
        "" [ intExpr( 1) len intExpr( 2) ] <> "" or
        "" [ intExpr( 1) len intExpr(15) ] <> "" or
        "" [ intExpr( 2) len intExpr(-5) ] <> "" or
        "" [ intExpr( 2) len intExpr( 0) ] <> "" or
        "" [ intExpr( 2) len intExpr( 1) ] <> "" or
        "" [ intExpr( 2) len intExpr(15) ] <> "" or
        "" [ intExpr(15) len intExpr(-5) ] <> "" or
        "" [ intExpr(15) len intExpr( 0) ] <> "" or
        "" [ intExpr(15) len intExpr( 1) ] <> "" or
        "" [ intExpr(15) len intExpr( 2) ] <> "" or
        "" [ intExpr(15) len intExpr(20) ] <> "" or
        "1" [ intExpr(-5) len intExpr(-9) ] <> "" or
        "1" [ intExpr(-5) len intExpr(-5) ] <> "" or
        "1" [ intExpr(-5) len intExpr( 0) ] <> "" or
        "1" [ intExpr(-5) len intExpr( 1) ] <> "" or
        "1" [ intExpr(-5) len intExpr( 6) ] <> "" or
        "1" [ intExpr(-5) len intExpr( 7) ] <> "1" or
        "1" [ intExpr(-5) len intExpr( 8) ] <> "1" or
        "1" [ intExpr(-5) len intExpr(10) ] <> "1" or
        "1" [ intExpr( 0) len intExpr(-5) ] <> "" or
        "1" [ intExpr( 0) len intExpr( 0) ] <> "" or
        "1" [ intExpr( 0) len intExpr( 1) ] <> "" or
        "1" [ intExpr( 0) len intExpr( 2) ] <> "1" or
        "1" [ intExpr( 0) len intExpr( 3) ] <> "1" or
        "1" [ intExpr( 0) len intExpr(15) ] <> "1" or
        "1" [ intExpr( 1) len intExpr(-5) ] <> "" or
        "1" [ intExpr( 1) len intExpr( 0) ] <> "" or
        "1" [ intExpr( 1) len intExpr( 1) ] <> "1" or
        "1" [ intExpr( 1) len intExpr( 2) ] <> "1" or
        "1" [ intExpr( 1) len intExpr(15) ] <> "1" or
        "1" [ intExpr( 2) len intExpr(-5) ] <> "" or
        "1" [ intExpr( 5) len intExpr( 0) ] <> "" or
        "1" [ intExpr( 2) len intExpr( 1) ] <> "" or
        "1" [ intExpr( 2) len intExpr( 2) ] <> "" or
        "1" [ intExpr( 2) len intExpr(15) ] <> "" or
        "1" [ intExpr(15) len intExpr(-5) ] <> "" or
        "1" [ intExpr(15) len intExpr( 0) ] <> "" or
        "1" [ intExpr(15) len intExpr( 1) ] <> "" or
        "1" [ intExpr(15) len intExpr( 2) ] <> "" or
        "1" [ intExpr(15) len intExpr(20) ] <> "" or
        "1234567890" [ intExpr(-5) len intExpr(-9) ] <> "" or
        "1234567890" [ intExpr(-5) len intExpr(-5) ] <> "" or
        "1234567890" [ intExpr(-5) len intExpr( 0) ] <> "" or
        "1234567890" [ intExpr(-5) len intExpr( 1) ] <> "" or
        "1234567890" [ intExpr(-5) len intExpr( 6) ] <> "" or
        "1234567890" [ intExpr(-5) len intExpr( 7) ] <> "1" or
        "1234567890" [ intExpr(-5) len intExpr( 8) ] <> "12" or
        "1234567890" [ intExpr(-5) len intExpr(11) ] <> "12345" or
        "1234567890" [ intExpr(-5) len intExpr(15) ] <> "123456789" or
        "1234567890" [ intExpr(-5) len intExpr(16) ] <> "1234567890" or
        "1234567890" [ intExpr(-5) len intExpr(17) ] <> "1234567890" or
        "1234567890" [ intExpr(-5) len intExpr(20) ] <> "1234567890" or
        "1234567890" [ intExpr( 0) len intExpr(-5) ] <> "" or
        "1234567890" [ intExpr( 0) len intExpr(-1) ] <> "" or
        "1234567890" [ intExpr( 0) len intExpr( 0) ] <> "" or
        "1234567890" [ intExpr( 0) len intExpr( 1) ] <> "" or
        "1234567890" [ intExpr( 0) len intExpr( 2) ] <> "1" or
        "1234567890" [ intExpr( 0) len intExpr( 3) ] <> "12" or
        "1234567890" [ intExpr( 0) len intExpr( 6) ] <> "12345" or
        "1234567890" [ intExpr( 0) len intExpr(10) ] <> "123456789" or
        "1234567890" [ intExpr( 0) len intExpr(11) ] <> "1234567890" or
        "1234567890" [ intExpr( 0) len intExpr(12) ] <> "1234567890" or
        "1234567890" [ intExpr( 0) len intExpr(15) ] <> "1234567890" or
        "1234567890" [ intExpr( 1) len intExpr(-5) ] <> "" or
        "1234567890" [ intExpr( 1) len intExpr(-1) ] <> "" or
        "1234567890" [ intExpr( 1) len intExpr( 0) ] <> "" or
        "1234567890" [ intExpr( 1) len intExpr( 1) ] <> "1" or
        "1234567890" [ intExpr( 1) len intExpr( 2) ] <> "12" or
        "1234567890" [ intExpr( 1) len intExpr( 5) ] <> "12345" or
        "1234567890" [ intExpr( 1) len intExpr( 9) ] <> "123456789" or
        "1234567890" [ intExpr( 1) len intExpr(10) ] <> "1234567890" or
        "1234567890" [ intExpr( 1) len intExpr(11) ] <> "1234567890" or
        "1234567890" [ intExpr( 1) len intExpr(15) ] <> "1234567890" or
        "1234567890" [ intExpr( 2) len intExpr(-5) ] <> "" or
        "1234567890" [ intExpr( 2) len intExpr(-1) ] <> "" or
        "1234567890" [ intExpr( 2) len intExpr( 0) ] <> "" or
        "1234567890" [ intExpr( 2) len intExpr( 1) ] <> "2" or
        "1234567890" [ intExpr( 2) len intExpr( 2) ] <> "23" or
        "1234567890" [ intExpr( 2) len intExpr( 5) ] <> "23456" or
        "1234567890" [ intExpr( 2) len intExpr( 8) ] <> "23456789" or
        "1234567890" [ intExpr( 2) len intExpr( 9) ] <> "234567890" or
        "1234567890" [ intExpr( 2) len intExpr(10) ] <> "234567890" or
        "1234567890" [ intExpr( 2) len intExpr(15) ] <> "234567890" or
        "1234567890" [ intExpr( 5) len intExpr(-5) ] <> "" or
        "1234567890" [ intExpr( 5) len intExpr(-1) ] <> "" or
        "1234567890" [ intExpr( 5) len intExpr( 0) ] <> "" or
        "1234567890" [ intExpr( 5) len intExpr( 1) ] <> "5" or
        "1234567890" [ intExpr( 5) len intExpr( 2) ] <> "56" or
        "1234567890" [ intExpr( 5) len intExpr( 5) ] <> "56789" or
        "1234567890" [ intExpr( 5) len intExpr( 6) ] <> "567890" or
        "1234567890" [ intExpr( 5) len intExpr( 7) ] <> "567890" or
        "1234567890" [ intExpr( 5) len intExpr(15) ] <> "567890" or
        "1234567890" [ intExpr( 9) len intExpr(-5) ] <> "" or
        "1234567890" [ intExpr( 9) len intExpr(-1) ] <> "" or
        "1234567890" [ intExpr( 9) len intExpr( 0) ] <> "" or
        "1234567890" [ intExpr( 9) len intExpr( 1) ] <> "9" or
        "1234567890" [ intExpr( 9) len intExpr( 2) ] <> "90" or
        "1234567890" [ intExpr( 9) len intExpr( 3) ] <> "90" or
        "1234567890" [ intExpr( 9) len intExpr(15) ] <> "90" or
        "1234567890" [ intExpr(10) len intExpr(-5) ] <> "" or
        "1234567890" [ intExpr(10) len intExpr(-1) ] <> "" or
        "1234567890" [ intExpr(10) len intExpr( 0) ] <> "" or
        "1234567890" [ intExpr(10) len intExpr( 1) ] <> "0" or
        "1234567890" [ intExpr(10) len intExpr( 2) ] <> "0" or
        "1234567890" [ intExpr(10) len intExpr(15) ] <> "0" or
        "1234567890" [ intExpr(11) len intExpr(-5) ] <> "" or
        "1234567890" [ intExpr(11) len intExpr( 0) ] <> "" or
        "1234567890" [ intExpr(11) len intExpr( 1) ] <> "" or
        "1234567890" [ intExpr(11) len intExpr( 2) ] <> "" or
        "1234567890" [ intExpr(11) len intExpr(15) ] <> "" or
        "1234567890" [ intExpr(15) len intExpr(-5) ] <> "" or
        "1234567890" [ intExpr(15) len intExpr( 0) ] <> "" or
        "1234567890" [ intExpr(15) len intExpr( 1) ] <> "" or
        "1234567890" [ intExpr(15) len intExpr( 2) ] <> "" or
        "1234567890" [ intExpr(15) len intExpr(20) ] <> "" then
      writeln(" ***** STRING [ START len LENGTH ] does not work correct. (1)");
      okay := FALSE;
    end if;

    if  striExpr("") [ -5 len -9 ] <> "" or
        striExpr("") [ -5 len -5 ] <> "" or
        striExpr("") [ -5 len  0 ] <> "" or
        striExpr("") [ -5 len  1 ] <> "" or
        striExpr("") [ -5 len  6 ] <> "" or
        striExpr("") [ -5 len  7 ] <> "" or
        striExpr("") [ -5 len  8 ] <> "" or
        striExpr("") [ -5 len 20 ] <> "" or
        striExpr("") [  0 len -5 ] <> "" or
        striExpr("") [  0 len  0 ] <> "" or
        striExpr("") [  0 len  1 ] <> "" or
        striExpr("") [  0 len  2 ] <> "" or
        striExpr("") [  0 len 15 ] <> "" or
        striExpr("") [  1 len -5 ] <> "" or
        striExpr("") [  1 len  0 ] <> "" or
        striExpr("") [  1 len  1 ] <> "" or
        striExpr("") [  1 len  2 ] <> "" or
        striExpr("") [  1 len 15 ] <> "" or
        striExpr("") [  2 len -5 ] <> "" or
        striExpr("") [  2 len  0 ] <> "" or
        striExpr("") [  2 len  1 ] <> "" or
        striExpr("") [  2 len 15 ] <> "" or
        striExpr("") [ 15 len -5 ] <> "" or
        striExpr("") [ 15 len  0 ] <> "" or
        striExpr("") [ 15 len  1 ] <> "" or
        striExpr("") [ 15 len  2 ] <> "" or
        striExpr("") [ 15 len 20 ] <> "" or
        striExpr("1") [ -5 len -9 ] <> "" or
        striExpr("1") [ -5 len -5 ] <> "" or
        striExpr("1") [ -5 len  0 ] <> "" or
        striExpr("1") [ -5 len  1 ] <> "" or
        striExpr("1") [ -5 len  6 ] <> "" or
        striExpr("1") [ -5 len  7 ] <> "1" or
        striExpr("1") [ -5 len  8 ] <> "1" or
        striExpr("1") [ -5 len 10 ] <> "1" or
        striExpr("1") [  0 len -5 ] <> "" or
        striExpr("1") [  0 len  0 ] <> "" or
        striExpr("1") [  0 len  1 ] <> "" or
        striExpr("1") [  0 len  2 ] <> "1" or
        striExpr("1") [  0 len  3 ] <> "1" or
        striExpr("1") [  0 len 15 ] <> "1" or
        striExpr("1") [  1 len -5 ] <> "" or
        striExpr("1") [  1 len  0 ] <> "" or
        striExpr("1") [  1 len  1 ] <> "1" or
        striExpr("1") [  1 len  2 ] <> "1" or
        striExpr("1") [  1 len 15 ] <> "1" or
        striExpr("1") [  2 len -5 ] <> "" or
        striExpr("1") [  2 len  0 ] <> "" or
        striExpr("1") [  2 len  1 ] <> "" or
        striExpr("1") [  2 len  2 ] <> "" or
        striExpr("1") [  2 len 15 ] <> "" or
        striExpr("1") [ 15 len -5 ] <> "" or
        striExpr("1") [ 15 len  0 ] <> "" or
        striExpr("1") [ 15 len  1 ] <> "" or
        striExpr("1") [ 15 len  2 ] <> "" or
        striExpr("1") [ 15 len 20 ] <> "" or
        striExpr("1234567890") [ -5 len -9 ] <> "" or
        striExpr("1234567890") [ -5 len -5 ] <> "" or
        striExpr("1234567890") [ -5 len  0 ] <> "" or
        striExpr("1234567890") [ -5 len  1 ] <> "" or
        striExpr("1234567890") [ -5 len  6 ] <> "" or
        striExpr("1234567890") [ -5 len  7 ] <> "1" or
        striExpr("1234567890") [ -5 len  8 ] <> "12" or
        striExpr("1234567890") [ -5 len 11 ] <> "12345" or
        striExpr("1234567890") [ -5 len 15 ] <> "123456789" or
        striExpr("1234567890") [ -5 len 16 ] <> "1234567890" or
        striExpr("1234567890") [ -5 len 17 ] <> "1234567890" or
        striExpr("1234567890") [ -5 len 20 ] <> "1234567890" or
        striExpr("1234567890") [  0 len -5 ] <> "" or
        striExpr("1234567890") [  0 len -1 ] <> "" or
        striExpr("1234567890") [  0 len  0 ] <> "" or
        striExpr("1234567890") [  0 len  1 ] <> "" or
        striExpr("1234567890") [  0 len  2 ] <> "1" or
        striExpr("1234567890") [  0 len  3 ] <> "12" or
        striExpr("1234567890") [  0 len  6 ] <> "12345" or
        striExpr("1234567890") [  0 len 10 ] <> "123456789" or
        striExpr("1234567890") [  0 len 11 ] <> "1234567890" or
        striExpr("1234567890") [  0 len 12 ] <> "1234567890" or
        striExpr("1234567890") [  0 len 15 ] <> "1234567890" or
        striExpr("1234567890") [  1 len -5 ] <> "" or
        striExpr("1234567890") [  1 len -1 ] <> "" or
        striExpr("1234567890") [  1 len  0 ] <> "" or
        striExpr("1234567890") [  1 len  1 ] <> "1" or
        striExpr("1234567890") [  1 len  2 ] <> "12" or
        striExpr("1234567890") [  1 len  5 ] <> "12345" or
        striExpr("1234567890") [  1 len  9 ] <> "123456789" or
        striExpr("1234567890") [  1 len 10 ] <> "1234567890" or
        striExpr("1234567890") [  1 len 11 ] <> "1234567890" or
        striExpr("1234567890") [  1 len 15 ] <> "1234567890" or
        striExpr("1234567890") [  2 len -5 ] <> "" or
        striExpr("1234567890") [  2 len -1 ] <> "" or
        striExpr("1234567890") [  2 len  0 ] <> "" or
        striExpr("1234567890") [  2 len  1 ] <> "2" or
        striExpr("1234567890") [  2 len  2 ] <> "23" or
        striExpr("1234567890") [  2 len  5 ] <> "23456" or
        striExpr("1234567890") [  2 len  8 ] <> "23456789" or
        striExpr("1234567890") [  2 len  9 ] <> "234567890" or
        striExpr("1234567890") [  2 len 10 ] <> "234567890" or
        striExpr("1234567890") [  2 len 15 ] <> "234567890" or
        striExpr("1234567890") [  5 len -5 ] <> "" or
        striExpr("1234567890") [  5 len -1 ] <> "" or
        striExpr("1234567890") [  5 len  0 ] <> "" or
        striExpr("1234567890") [  5 len  1 ] <> "5" or
        striExpr("1234567890") [  5 len  2 ] <> "56" or
        striExpr("1234567890") [  5 len  5 ] <> "56789" or
        striExpr("1234567890") [  5 len  6 ] <> "567890" or
        striExpr("1234567890") [  5 len  7 ] <> "567890" or
        striExpr("1234567890") [  5 len 15 ] <> "567890" or
        striExpr("1234567890") [  9 len -5 ] <> "" or
        striExpr("1234567890") [  9 len -1 ] <> "" or
        striExpr("1234567890") [  9 len  0 ] <> "" or
        striExpr("1234567890") [  9 len  1 ] <> "9" or
        striExpr("1234567890") [  9 len  2 ] <> "90" or
        striExpr("1234567890") [  9 len  3 ] <> "90" or
        striExpr("1234567890") [  9 len 15 ] <> "90" or
        striExpr("1234567890") [ 10 len -5 ] <> "" or
        striExpr("1234567890") [ 10 len -1 ] <> "" or
        striExpr("1234567890") [ 10 len  0 ] <> "" or
        striExpr("1234567890") [ 10 len  1 ] <> "0" or
        striExpr("1234567890") [ 10 len  2 ] <> "0" or
        striExpr("1234567890") [ 10 len 15 ] <> "0" or
        striExpr("1234567890") [ 11 len -5 ] <> "" or
        striExpr("1234567890") [ 11 len  0 ] <> "" or
        striExpr("1234567890") [ 11 len  1 ] <> "" or
        striExpr("1234567890") [ 11 len  2 ] <> "" or
        striExpr("1234567890") [ 11 len 15 ] <> "" or
        striExpr("1234567890") [ 15 len -5 ] <> "" or
        striExpr("1234567890") [ 15 len  0 ] <> "" or
        striExpr("1234567890") [ 15 len  1 ] <> "" or
        striExpr("1234567890") [ 15 len  2 ] <> "" or
        striExpr("1234567890") [ 15 len 20 ] <> "" or
        striExpr("") [ -5 len intExpr(-9) ] <> "" or
        striExpr("") [ -5 len intExpr(-5) ] <> "" or
        striExpr("") [ -5 len intExpr( 0) ] <> "" or
        striExpr("") [ -5 len intExpr( 1) ] <> "" or
        striExpr("") [ -5 len intExpr( 6) ] <> "" or
        striExpr("") [ -5 len intExpr( 7) ] <> "" or
        striExpr("") [ -5 len intExpr( 8) ] <> "" or
        striExpr("") [ -5 len intExpr(20) ] <> "" or
        striExpr("") [  0 len intExpr(-5) ] <> "" or
        striExpr("") [  0 len intExpr( 0) ] <> "" or
        striExpr("") [  0 len intExpr( 1) ] <> "" or
        striExpr("") [  0 len intExpr( 2) ] <> "" or
        striExpr("") [  0 len intExpr(15) ] <> "" or
        striExpr("") [  1 len intExpr(-5) ] <> "" or
        striExpr("") [  1 len intExpr( 0) ] <> "" or
        striExpr("") [  1 len intExpr( 1) ] <> "" or
        striExpr("") [  1 len intExpr( 2) ] <> "" or
        striExpr("") [  1 len intExpr(15) ] <> "" or
        striExpr("") [  2 len intExpr(-5) ] <> "" or
        striExpr("") [  2 len intExpr( 0) ] <> "" or
        striExpr("") [  2 len intExpr( 1) ] <> "" or
        striExpr("") [  2 len intExpr(15) ] <> "" or
        striExpr("") [ 15 len intExpr(-5) ] <> "" or
        striExpr("") [ 15 len intExpr( 0) ] <> "" or
        striExpr("") [ 15 len intExpr( 1) ] <> "" or
        striExpr("") [ 15 len intExpr( 2) ] <> "" or
        striExpr("") [ 15 len intExpr(20) ] <> "" or
        striExpr("1") [ -5 len intExpr(-9) ] <> "" or
        striExpr("1") [ -5 len intExpr(-5) ] <> "" or
        striExpr("1") [ -5 len intExpr( 0) ] <> "" or
        striExpr("1") [ -5 len intExpr( 1) ] <> "" or
        striExpr("1") [ -5 len intExpr( 6) ] <> "" or
        striExpr("1") [ -5 len intExpr( 7) ] <> "1" or
        striExpr("1") [ -5 len intExpr( 8) ] <> "1" or
        striExpr("1") [ -5 len intExpr(10) ] <> "1" or
        striExpr("1") [  0 len intExpr(-5) ] <> "" or
        striExpr("1") [  0 len intExpr( 0) ] <> "" or
        striExpr("1") [  0 len intExpr( 1) ] <> "" or
        striExpr("1") [  0 len intExpr( 2) ] <> "1" or
        striExpr("1") [  0 len intExpr( 3) ] <> "1" or
        striExpr("1") [  0 len intExpr(15) ] <> "1" or
        striExpr("1") [  1 len intExpr(-5) ] <> "" or
        striExpr("1") [  1 len intExpr( 0) ] <> "" or
        striExpr("1") [  1 len intExpr( 1) ] <> "1" or
        striExpr("1") [  1 len intExpr( 2) ] <> "1" or
        striExpr("1") [  1 len intExpr(15) ] <> "1" or
        striExpr("1") [  2 len intExpr(-5) ] <> "" or
        striExpr("1") [  2 len intExpr( 0) ] <> "" or
        striExpr("1") [  2 len intExpr( 1) ] <> "" or
        striExpr("1") [  2 len intExpr( 2) ] <> "" or
        striExpr("1") [  2 len intExpr(15) ] <> "" or
        striExpr("1") [ 15 len intExpr(-5) ] <> "" or
        striExpr("1") [ 15 len intExpr( 0) ] <> "" or
        striExpr("1") [ 15 len intExpr( 1) ] <> "" or
        striExpr("1") [ 15 len intExpr( 2) ] <> "" or
        striExpr("1") [ 15 len intExpr(20) ] <> "" or
        striExpr("1234567890") [ -5 len intExpr(-9) ] <> "" or
        striExpr("1234567890") [ -5 len intExpr(-5) ] <> "" or
        striExpr("1234567890") [ -5 len intExpr( 0) ] <> "" or
        striExpr("1234567890") [ -5 len intExpr( 1) ] <> "" or
        striExpr("1234567890") [ -5 len intExpr( 6) ] <> "" or
        striExpr("1234567890") [ -5 len intExpr( 7) ] <> "1" or
        striExpr("1234567890") [ -5 len intExpr( 8) ] <> "12" or
        striExpr("1234567890") [ -5 len intExpr(11) ] <> "12345" or
        striExpr("1234567890") [ -5 len intExpr(15) ] <> "123456789" or
        striExpr("1234567890") [ -5 len intExpr(16) ] <> "1234567890" or
        striExpr("1234567890") [ -5 len intExpr(17) ] <> "1234567890" or
        striExpr("1234567890") [ -5 len intExpr(20) ] <> "1234567890" or
        striExpr("1234567890") [  0 len intExpr(-5) ] <> "" or
        striExpr("1234567890") [  0 len intExpr(-1) ] <> "" or
        striExpr("1234567890") [  0 len intExpr( 0) ] <> "" or
        striExpr("1234567890") [  0 len intExpr( 1) ] <> "" or
        striExpr("1234567890") [  0 len intExpr( 2) ] <> "1" or
        striExpr("1234567890") [  0 len intExpr( 3) ] <> "12" or
        striExpr("1234567890") [  0 len intExpr( 6) ] <> "12345" or
        striExpr("1234567890") [  0 len intExpr(10) ] <> "123456789" or
        striExpr("1234567890") [  0 len intExpr(11) ] <> "1234567890" or
        striExpr("1234567890") [  0 len intExpr(12) ] <> "1234567890" or
        striExpr("1234567890") [  0 len intExpr(15) ] <> "1234567890" or
        striExpr("1234567890") [  1 len intExpr(-5) ] <> "" or
        striExpr("1234567890") [  1 len intExpr(-1) ] <> "" or
        striExpr("1234567890") [  1 len intExpr( 0) ] <> "" or
        striExpr("1234567890") [  1 len intExpr( 1) ] <> "1" or
        striExpr("1234567890") [  1 len intExpr( 2) ] <> "12" or
        striExpr("1234567890") [  1 len intExpr( 5) ] <> "12345" or
        striExpr("1234567890") [  1 len intExpr( 9) ] <> "123456789" or
        striExpr("1234567890") [  1 len intExpr(10) ] <> "1234567890" or
        striExpr("1234567890") [  1 len intExpr(11) ] <> "1234567890" or
        striExpr("1234567890") [  1 len intExpr(15) ] <> "1234567890" or
        striExpr("1234567890") [  2 len intExpr(-5) ] <> "" or
        striExpr("1234567890") [  2 len intExpr(-1) ] <> "" or
        striExpr("1234567890") [  2 len intExpr( 0) ] <> "" or
        striExpr("1234567890") [  2 len intExpr( 1) ] <> "2" or
        striExpr("1234567890") [  2 len intExpr( 2) ] <> "23" or
        striExpr("1234567890") [  2 len intExpr( 5) ] <> "23456" or
        striExpr("1234567890") [  2 len intExpr( 8) ] <> "23456789" or
        striExpr("1234567890") [  2 len intExpr( 9) ] <> "234567890" or
        striExpr("1234567890") [  2 len intExpr(10) ] <> "234567890" or
        striExpr("1234567890") [  2 len intExpr(15) ] <> "234567890" or
        striExpr("1234567890") [  5 len intExpr(-5) ] <> "" or
        striExpr("1234567890") [  5 len intExpr(-1) ] <> "" or
        striExpr("1234567890") [  5 len intExpr( 0) ] <> "" or
        striExpr("1234567890") [  5 len intExpr( 1) ] <> "5" or
        striExpr("1234567890") [  5 len intExpr( 2) ] <> "56" or
        striExpr("1234567890") [  5 len intExpr( 5) ] <> "56789" or
        striExpr("1234567890") [  5 len intExpr( 6) ] <> "567890" or
        striExpr("1234567890") [  5 len intExpr( 7) ] <> "567890" or
        striExpr("1234567890") [  5 len intExpr(15) ] <> "567890" or
        striExpr("1234567890") [  9 len intExpr(-5) ] <> "" or
        striExpr("1234567890") [  9 len intExpr(-1) ] <> "" or
        striExpr("1234567890") [  9 len intExpr( 0) ] <> "" or
        striExpr("1234567890") [  9 len intExpr( 1) ] <> "9" or
        striExpr("1234567890") [  9 len intExpr( 2) ] <> "90" or
        striExpr("1234567890") [  9 len intExpr( 3) ] <> "90" or
        striExpr("1234567890") [  9 len intExpr(15) ] <> "90" or
        striExpr("1234567890") [ 10 len intExpr(-5) ] <> "" or
        striExpr("1234567890") [ 10 len intExpr(-1) ] <> "" or
        striExpr("1234567890") [ 10 len intExpr( 0) ] <> "" or
        striExpr("1234567890") [ 10 len intExpr( 1) ] <> "0" or
        striExpr("1234567890") [ 10 len intExpr( 2) ] <> "0" or
        striExpr("1234567890") [ 10 len intExpr(15) ] <> "0" or
        striExpr("1234567890") [ 11 len intExpr(-5) ] <> "" or
        striExpr("1234567890") [ 11 len intExpr( 0) ] <> "" or
        striExpr("1234567890") [ 11 len intExpr( 1) ] <> "" or
        striExpr("1234567890") [ 11 len intExpr( 2) ] <> "" or
        striExpr("1234567890") [ 11 len intExpr(15) ] <> "" or
        striExpr("1234567890") [ 15 len intExpr(-5) ] <> "" or
        striExpr("1234567890") [ 15 len intExpr( 0) ] <> "" or
        striExpr("1234567890") [ 15 len intExpr( 1) ] <> "" or
        striExpr("1234567890") [ 15 len intExpr( 2) ] <> "" or
        striExpr("1234567890") [ 15 len intExpr(20) ] <> "" or
        striExpr("") [ intExpr(-5) len -9 ] <> "" or
        striExpr("") [ intExpr(-5) len -5 ] <> "" or
        striExpr("") [ intExpr(-5) len  0 ] <> "" or
        striExpr("") [ intExpr(-5) len  1 ] <> "" or
        striExpr("") [ intExpr(-5) len  6 ] <> "" or
        striExpr("") [ intExpr(-5) len  7 ] <> "" or
        striExpr("") [ intExpr(-5) len  8 ] <> "" or
        striExpr("") [ intExpr(-5) len 20 ] <> "" or
        striExpr("") [ intExpr( 0) len -5 ] <> "" or
        striExpr("") [ intExpr( 0) len  0 ] <> "" or
        striExpr("") [ intExpr( 0) len  1 ] <> "" or
        striExpr("") [ intExpr( 0) len  2 ] <> "" or
        striExpr("") [ intExpr( 0) len 15 ] <> "" or
        striExpr("") [ intExpr( 1) len -5 ] <> "" or
        striExpr("") [ intExpr( 1) len  0 ] <> "" or
        striExpr("") [ intExpr( 1) len  1 ] <> "" or
        striExpr("") [ intExpr( 1) len  2 ] <> "" or
        striExpr("") [ intExpr( 1) len 15 ] <> "" or
        striExpr("") [ intExpr( 2) len -5 ] <> "" or
        striExpr("") [ intExpr( 2) len  0 ] <> "" or
        striExpr("") [ intExpr( 2) len  1 ] <> "" or
        striExpr("") [ intExpr( 2) len 15 ] <> "" or
        striExpr("") [ intExpr(15) len -5 ] <> "" or
        striExpr("") [ intExpr(15) len  0 ] <> "" or
        striExpr("") [ intExpr(15) len  1 ] <> "" or
        striExpr("") [ intExpr(15) len  2 ] <> "" or
        striExpr("") [ intExpr(15) len 20 ] <> "" or
        striExpr("1") [ intExpr(-5) len -9 ] <> "" or
        striExpr("1") [ intExpr(-5) len -5 ] <> "" or
        striExpr("1") [ intExpr(-5) len  0 ] <> "" or
        striExpr("1") [ intExpr(-5) len  1 ] <> "" or
        striExpr("1") [ intExpr(-5) len  6 ] <> "" or
        striExpr("1") [ intExpr(-5) len  7 ] <> "1" or
        striExpr("1") [ intExpr(-5) len  8 ] <> "1" or
        striExpr("1") [ intExpr(-5) len 10 ] <> "1" or
        striExpr("1") [ intExpr( 0) len -5 ] <> "" or
        striExpr("1") [ intExpr( 0) len  0 ] <> "" or
        striExpr("1") [ intExpr( 0) len  1 ] <> "" or
        striExpr("1") [ intExpr( 0) len  2 ] <> "1" or
        striExpr("1") [ intExpr( 0) len  3 ] <> "1" or
        striExpr("1") [ intExpr( 0) len 15 ] <> "1" or
        striExpr("1") [ intExpr( 1) len -5 ] <> "" or
        striExpr("1") [ intExpr( 1) len  0 ] <> "" or
        striExpr("1") [ intExpr( 1) len  1 ] <> "1" or
        striExpr("1") [ intExpr( 1) len  2 ] <> "1" or
        striExpr("1") [ intExpr( 1) len 15 ] <> "1" or
        striExpr("1") [ intExpr( 2) len -5 ] <> "" or
        striExpr("1") [ intExpr( 2) len  0 ] <> "" or
        striExpr("1") [ intExpr( 2) len  1 ] <> "" or
        striExpr("1") [ intExpr( 2) len  2 ] <> "" or
        striExpr("1") [ intExpr( 2) len 15 ] <> "" or
        striExpr("1") [ intExpr(15) len -5 ] <> "" or
        striExpr("1") [ intExpr(15) len  0 ] <> "" or
        striExpr("1") [ intExpr(15) len  1 ] <> "" or
        striExpr("1") [ intExpr(15) len  2 ] <> "" or
        striExpr("1") [ intExpr(15) len 20 ] <> "" or
        striExpr("1234567890") [ intExpr(-5) len -9 ] <> "" or
        striExpr("1234567890") [ intExpr(-5) len -5 ] <> "" or
        striExpr("1234567890") [ intExpr(-5) len  0 ] <> "" or
        striExpr("1234567890") [ intExpr(-5) len  1 ] <> "" or
        striExpr("1234567890") [ intExpr(-5) len  6 ] <> "" or
        striExpr("1234567890") [ intExpr(-5) len  7 ] <> "1" or
        striExpr("1234567890") [ intExpr(-5) len  8 ] <> "12" or
        striExpr("1234567890") [ intExpr(-5) len 11 ] <> "12345" or
        striExpr("1234567890") [ intExpr(-5) len 15 ] <> "123456789" or
        striExpr("1234567890") [ intExpr(-5) len 16 ] <> "1234567890" or
        striExpr("1234567890") [ intExpr(-5) len 17 ] <> "1234567890" or
        striExpr("1234567890") [ intExpr(-5) len 20 ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 0) len -5 ] <> "" or
        striExpr("1234567890") [ intExpr( 0) len -1 ] <> "" or
        striExpr("1234567890") [ intExpr( 0) len  0 ] <> "" or
        striExpr("1234567890") [ intExpr( 0) len  1 ] <> "" or
        striExpr("1234567890") [ intExpr( 0) len  2 ] <> "1" or
        striExpr("1234567890") [ intExpr( 0) len  3 ] <> "12" or
        striExpr("1234567890") [ intExpr( 0) len  6 ] <> "12345" or
        striExpr("1234567890") [ intExpr( 0) len 10 ] <> "123456789" or
        striExpr("1234567890") [ intExpr( 0) len 11 ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 0) len 12 ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 0) len 15 ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 1) len -5 ] <> "" or
        striExpr("1234567890") [ intExpr( 1) len -1 ] <> "" or
        striExpr("1234567890") [ intExpr( 1) len  0 ] <> "" or
        striExpr("1234567890") [ intExpr( 1) len  1 ] <> "1" or
        striExpr("1234567890") [ intExpr( 1) len  2 ] <> "12" or
        striExpr("1234567890") [ intExpr( 1) len  5 ] <> "12345" or
        striExpr("1234567890") [ intExpr( 1) len  9 ] <> "123456789" or
        striExpr("1234567890") [ intExpr( 1) len 10 ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 1) len 11 ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 1) len 15 ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 2) len -5 ] <> "" or
        striExpr("1234567890") [ intExpr( 2) len -1 ] <> "" or
        striExpr("1234567890") [ intExpr( 2) len  0 ] <> "" or
        striExpr("1234567890") [ intExpr( 2) len  1 ] <> "2" or
        striExpr("1234567890") [ intExpr( 2) len  2 ] <> "23" or
        striExpr("1234567890") [ intExpr( 2) len  5 ] <> "23456" or
        striExpr("1234567890") [ intExpr( 2) len  8 ] <> "23456789" or
        striExpr("1234567890") [ intExpr( 2) len  9 ] <> "234567890" or
        striExpr("1234567890") [ intExpr( 2) len 10 ] <> "234567890" or
        striExpr("1234567890") [ intExpr( 2) len 15 ] <> "234567890" or
        striExpr("1234567890") [ intExpr( 5) len -5 ] <> "" or
        striExpr("1234567890") [ intExpr( 5) len -1 ] <> "" or
        striExpr("1234567890") [ intExpr( 5) len  0 ] <> "" or
        striExpr("1234567890") [ intExpr( 5) len  1 ] <> "5" or
        striExpr("1234567890") [ intExpr( 5) len  2 ] <> "56" or
        striExpr("1234567890") [ intExpr( 5) len  5 ] <> "56789" or
        striExpr("1234567890") [ intExpr( 5) len  6 ] <> "567890" or
        striExpr("1234567890") [ intExpr( 5) len  7 ] <> "567890" or
        striExpr("1234567890") [ intExpr( 5) len 15 ] <> "567890" or
        striExpr("1234567890") [ intExpr( 9) len -5 ] <> "" or
        striExpr("1234567890") [ intExpr( 9) len -1 ] <> "" or
        striExpr("1234567890") [ intExpr( 9) len  0 ] <> "" or
        striExpr("1234567890") [ intExpr( 9) len  1 ] <> "9" or
        striExpr("1234567890") [ intExpr( 9) len  2 ] <> "90" or
        striExpr("1234567890") [ intExpr( 9) len  3 ] <> "90" or
        striExpr("1234567890") [ intExpr( 9) len 15 ] <> "90" or
        striExpr("1234567890") [ intExpr(10) len -5 ] <> "" or
        striExpr("1234567890") [ intExpr(10) len -1 ] <> "" or
        striExpr("1234567890") [ intExpr(10) len  0 ] <> "" or
        striExpr("1234567890") [ intExpr(10) len  1 ] <> "0" or
        striExpr("1234567890") [ intExpr(10) len  2 ] <> "0" or
        striExpr("1234567890") [ intExpr(10) len 15 ] <> "0" or
        striExpr("1234567890") [ intExpr(11) len -5 ] <> "" or
        striExpr("1234567890") [ intExpr(11) len  0 ] <> "" or
        striExpr("1234567890") [ intExpr(11) len  1 ] <> "" or
        striExpr("1234567890") [ intExpr(11) len  2 ] <> "" or
        striExpr("1234567890") [ intExpr(11) len 15 ] <> "" or
        striExpr("1234567890") [ intExpr(15) len -5 ] <> "" or
        striExpr("1234567890") [ intExpr(15) len  0 ] <> "" or
        striExpr("1234567890") [ intExpr(15) len  1 ] <> "" or
        striExpr("1234567890") [ intExpr(15) len  2 ] <> "" or
        striExpr("1234567890") [ intExpr(15) len 20 ] <> "" or
        striExpr("") [ intExpr(-5) len intExpr(-9) ] <> "" or
        striExpr("") [ intExpr(-5) len intExpr(-5) ] <> "" or
        striExpr("") [ intExpr(-5) len intExpr( 0) ] <> "" or
        striExpr("") [ intExpr(-5) len intExpr( 1) ] <> "" or
        striExpr("") [ intExpr(-5) len intExpr( 6) ] <> "" or
        striExpr("") [ intExpr(-5) len intExpr( 7) ] <> "" or
        striExpr("") [ intExpr(-5) len intExpr( 8) ] <> "" or
        striExpr("") [ intExpr(-5) len intExpr(20) ] <> "" or
        striExpr("") [ intExpr( 0) len intExpr(-5) ] <> "" or
        striExpr("") [ intExpr( 0) len intExpr( 0) ] <> "" or
        striExpr("") [ intExpr( 0) len intExpr( 1) ] <> "" or
        striExpr("") [ intExpr( 0) len intExpr( 2) ] <> "" or
        striExpr("") [ intExpr( 0) len intExpr(15) ] <> "" or
        striExpr("") [ intExpr( 1) len intExpr(-5) ] <> "" or
        striExpr("") [ intExpr( 1) len intExpr( 0) ] <> "" or
        striExpr("") [ intExpr( 1) len intExpr( 1) ] <> "" or
        striExpr("") [ intExpr( 1) len intExpr( 2) ] <> "" or
        striExpr("") [ intExpr( 1) len intExpr(15) ] <> "" or
        striExpr("") [ intExpr( 2) len intExpr(-5) ] <> "" or
        striExpr("") [ intExpr( 2) len intExpr( 0) ] <> "" or
        striExpr("") [ intExpr( 2) len intExpr( 1) ] <> "" or
        striExpr("") [ intExpr( 2) len intExpr(15) ] <> "" or
        striExpr("") [ intExpr(15) len intExpr(-5) ] <> "" or
        striExpr("") [ intExpr(15) len intExpr( 0) ] <> "" or
        striExpr("") [ intExpr(15) len intExpr( 1) ] <> "" or
        striExpr("") [ intExpr(15) len intExpr( 2) ] <> "" or
        striExpr("") [ intExpr(15) len intExpr(20) ] <> "" or
        striExpr("1") [ intExpr(-5) len intExpr(-9) ] <> "" or
        striExpr("1") [ intExpr(-5) len intExpr(-5) ] <> "" or
        striExpr("1") [ intExpr(-5) len intExpr( 0) ] <> "" or
        striExpr("1") [ intExpr(-5) len intExpr( 1) ] <> "" or
        striExpr("1") [ intExpr(-5) len intExpr( 6) ] <> "" or
        striExpr("1") [ intExpr(-5) len intExpr( 7) ] <> "1" or
        striExpr("1") [ intExpr(-5) len intExpr( 8) ] <> "1" or
        striExpr("1") [ intExpr(-5) len intExpr(10) ] <> "1" or
        striExpr("1") [ intExpr( 0) len intExpr(-5) ] <> "" or
        striExpr("1") [ intExpr( 0) len intExpr( 0) ] <> "" or
        striExpr("1") [ intExpr( 0) len intExpr( 1) ] <> "" or
        striExpr("1") [ intExpr( 0) len intExpr( 2) ] <> "1" or
        striExpr("1") [ intExpr( 0) len intExpr( 3) ] <> "1" or
        striExpr("1") [ intExpr( 0) len intExpr(15) ] <> "1" or
        striExpr("1") [ intExpr( 1) len intExpr(-5) ] <> "" or
        striExpr("1") [ intExpr( 1) len intExpr( 0) ] <> "" or
        striExpr("1") [ intExpr( 1) len intExpr( 1) ] <> "1" or
        striExpr("1") [ intExpr( 1) len intExpr( 2) ] <> "1" or
        striExpr("1") [ intExpr( 1) len intExpr(15) ] <> "1" or
        striExpr("1") [ intExpr( 2) len intExpr(-5) ] <> "" or
        striExpr("1") [ intExpr( 2) len intExpr( 0) ] <> "" or
        striExpr("1") [ intExpr( 2) len intExpr( 1) ] <> "" or
        striExpr("1") [ intExpr( 2) len intExpr( 2) ] <> "" or
        striExpr("1") [ intExpr( 2) len intExpr(15) ] <> "" or
        striExpr("1") [ intExpr(15) len intExpr(-5) ] <> "" or
        striExpr("1") [ intExpr(15) len intExpr( 0) ] <> "" or
        striExpr("1") [ intExpr(15) len intExpr( 1) ] <> "" or
        striExpr("1") [ intExpr(15) len intExpr( 2) ] <> "" or
        striExpr("1") [ intExpr(15) len intExpr(20) ] <> "" or
        striExpr("1234567890") [ intExpr(-5) len intExpr(-9) ] <> "" or
        striExpr("1234567890") [ intExpr(-5) len intExpr(-5) ] <> "" or
        striExpr("1234567890") [ intExpr(-5) len intExpr( 0) ] <> "" or
        striExpr("1234567890") [ intExpr(-5) len intExpr( 1) ] <> "" or
        striExpr("1234567890") [ intExpr(-5) len intExpr( 6) ] <> "" or
        striExpr("1234567890") [ intExpr(-5) len intExpr( 7) ] <> "1" or
        striExpr("1234567890") [ intExpr(-5) len intExpr( 8) ] <> "12" or
        striExpr("1234567890") [ intExpr(-5) len intExpr(11) ] <> "12345" or
        striExpr("1234567890") [ intExpr(-5) len intExpr(15) ] <> "123456789" or
        striExpr("1234567890") [ intExpr(-5) len intExpr(16) ] <> "1234567890" or
        striExpr("1234567890") [ intExpr(-5) len intExpr(17) ] <> "1234567890" or
        striExpr("1234567890") [ intExpr(-5) len intExpr(20) ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 0) len intExpr(-5) ] <> "" or
        striExpr("1234567890") [ intExpr( 0) len intExpr(-1) ] <> "" or
        striExpr("1234567890") [ intExpr( 0) len intExpr( 0) ] <> "" or
        striExpr("1234567890") [ intExpr( 0) len intExpr( 1) ] <> "" or
        striExpr("1234567890") [ intExpr( 0) len intExpr( 2) ] <> "1" or
        striExpr("1234567890") [ intExpr( 0) len intExpr( 3) ] <> "12" or
        striExpr("1234567890") [ intExpr( 0) len intExpr( 6) ] <> "12345" or
        striExpr("1234567890") [ intExpr( 0) len intExpr(10) ] <> "123456789" or
        striExpr("1234567890") [ intExpr( 0) len intExpr(11) ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 0) len intExpr(12) ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 0) len intExpr(15) ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 1) len intExpr(-5) ] <> "" or
        striExpr("1234567890") [ intExpr( 1) len intExpr(-1) ] <> "" or
        striExpr("1234567890") [ intExpr( 1) len intExpr( 0) ] <> "" or
        striExpr("1234567890") [ intExpr( 1) len intExpr( 1) ] <> "1" or
        striExpr("1234567890") [ intExpr( 1) len intExpr( 2) ] <> "12" or
        striExpr("1234567890") [ intExpr( 1) len intExpr( 5) ] <> "12345" or
        striExpr("1234567890") [ intExpr( 1) len intExpr( 9) ] <> "123456789" or
        striExpr("1234567890") [ intExpr( 1) len intExpr(10) ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 1) len intExpr(11) ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 1) len intExpr(15) ] <> "1234567890" or
        striExpr("1234567890") [ intExpr( 2) len intExpr(-5) ] <> "" or
        striExpr("1234567890") [ intExpr( 2) len intExpr(-1) ] <> "" or
        striExpr("1234567890") [ intExpr( 2) len intExpr( 0) ] <> "" or
        striExpr("1234567890") [ intExpr( 2) len intExpr( 1) ] <> "2" or
        striExpr("1234567890") [ intExpr( 2) len intExpr( 2) ] <> "23" or
        striExpr("1234567890") [ intExpr( 2) len intExpr( 5) ] <> "23456" or
        striExpr("1234567890") [ intExpr( 2) len intExpr( 8) ] <> "23456789" or
        striExpr("1234567890") [ intExpr( 2) len intExpr( 9) ] <> "234567890" or
        striExpr("1234567890") [ intExpr( 2) len intExpr(10) ] <> "234567890" or
        striExpr("1234567890") [ intExpr( 2) len intExpr(15) ] <> "234567890" or
        striExpr("1234567890") [ intExpr( 5) len intExpr(-5) ] <> "" or
        striExpr("1234567890") [ intExpr( 5) len intExpr(-1) ] <> "" or
        striExpr("1234567890") [ intExpr( 5) len intExpr( 0) ] <> "" or
        striExpr("1234567890") [ intExpr( 5) len intExpr( 1) ] <> "5" or
        striExpr("1234567890") [ intExpr( 5) len intExpr( 2) ] <> "56" or
        striExpr("1234567890") [ intExpr( 5) len intExpr( 5) ] <> "56789" or
        striExpr("1234567890") [ intExpr( 5) len intExpr( 6) ] <> "567890" or
        striExpr("1234567890") [ intExpr( 5) len intExpr( 7) ] <> "567890" or
        striExpr("1234567890") [ intExpr( 5) len intExpr(15) ] <> "567890" or
        striExpr("1234567890") [ intExpr( 9) len intExpr(-5) ] <> "" or
        striExpr("1234567890") [ intExpr( 9) len intExpr(-1) ] <> "" or
        striExpr("1234567890") [ intExpr( 9) len intExpr( 0) ] <> "" or
        striExpr("1234567890") [ intExpr( 9) len intExpr( 1) ] <> "9" or
        striExpr("1234567890") [ intExpr( 9) len intExpr( 2) ] <> "90" or
        striExpr("1234567890") [ intExpr( 9) len intExpr( 3) ] <> "90" or
        striExpr("1234567890") [ intExpr( 9) len intExpr(15) ] <> "90" or
        striExpr("1234567890") [ intExpr(10) len intExpr(-5) ] <> "" or
        striExpr("1234567890") [ intExpr(10) len intExpr(-1) ] <> "" or
        striExpr("1234567890") [ intExpr(10) len intExpr( 0) ] <> "" or
        striExpr("1234567890") [ intExpr(10) len intExpr( 1) ] <> "0" or
        striExpr("1234567890") [ intExpr(10) len intExpr( 2) ] <> "0" or
        striExpr("1234567890") [ intExpr(10) len intExpr(15) ] <> "0" or
        striExpr("1234567890") [ intExpr(11) len intExpr(-5) ] <> "" or
        striExpr("1234567890") [ intExpr(11) len intExpr( 0) ] <> "" or
        striExpr("1234567890") [ intExpr(11) len intExpr( 1) ] <> "" or
        striExpr("1234567890") [ intExpr(11) len intExpr( 2) ] <> "" or
        striExpr("1234567890") [ intExpr(11) len intExpr(15) ] <> "" or
        striExpr("1234567890") [ intExpr(15) len intExpr(-5) ] <> "" or
        striExpr("1234567890") [ intExpr(15) len intExpr( 0) ] <> "" or
        striExpr("1234567890") [ intExpr(15) len intExpr( 1) ] <> "" or
        striExpr("1234567890") [ intExpr(15) len intExpr( 2) ] <> "" or
        striExpr("1234567890") [ intExpr(15) len intExpr(20) ] <> "" then
      writeln(" ***** STRING [ START len LENGTH ] does not work correct. (2)");
      okay := FALSE;
    end if;

    stri := "" [ -5 len -9 ]; ok := ok and stri = "";
    stri := "" [ -5 len -5 ]; ok := ok and stri = "";
    stri := "" [ -5 len  0 ]; ok := ok and stri = "";
    stri := "" [ -5 len  1 ]; ok := ok and stri = "";
    stri := "" [ -5 len  6 ]; ok := ok and stri = "";
    stri := "" [ -5 len  7 ]; ok := ok and stri = "";
    stri := "" [ -5 len  8 ]; ok := ok and stri = "";
    stri := "" [ -5 len 20 ]; ok := ok and stri = "";
    stri := "" [  0 len -5 ]; ok := ok and stri = "";
    stri := "" [  0 len  0 ]; ok := ok and stri = "";
    stri := "" [  0 len  1 ]; ok := ok and stri = "";
    stri := "" [  0 len  2 ]; ok := ok and stri = "";
    stri := "" [  0 len 15 ]; ok := ok and stri = "";
    stri := "" [  1 len -5 ]; ok := ok and stri = "";
    stri := "" [  1 len  0 ]; ok := ok and stri = "";
    stri := "" [  1 len  1 ]; ok := ok and stri = "";
    stri := "" [  1 len  2 ]; ok := ok and stri = "";
    stri := "" [  1 len 15 ]; ok := ok and stri = "";
    stri := "" [  2 len -5 ]; ok := ok and stri = "";
    stri := "" [  2 len  0 ]; ok := ok and stri = "";
    stri := "" [  2 len  1 ]; ok := ok and stri = "";
    stri := "" [  2 len 15 ]; ok := ok and stri = "";
    stri := "" [ 15 len -5 ]; ok := ok and stri = "";
    stri := "" [ 15 len  0 ]; ok := ok and stri = "";
    stri := "" [ 15 len  1 ]; ok := ok and stri = "";
    stri := "" [ 15 len  2 ]; ok := ok and stri = "";
    stri := "" [ 15 len 20 ]; ok := ok and stri = "";
    stri := "1" [ -5 len -9 ]; ok := ok and stri = "";
    stri := "1" [ -5 len -5 ]; ok := ok and stri = "";
    stri := "1" [ -5 len  0 ]; ok := ok and stri = "";
    stri := "1" [ -5 len  1 ]; ok := ok and stri = "";
    stri := "1" [ -5 len  6 ]; ok := ok and stri = "";
    stri := "1" [ -5 len  7 ]; ok := ok and stri = "1";
    stri := "1" [ -5 len  8 ]; ok := ok and stri = "1";
    stri := "1" [ -5 len 10 ]; ok := ok and stri = "1";
    stri := "1" [  0 len -5 ]; ok := ok and stri = "";
    stri := "1" [  0 len  0 ]; ok := ok and stri = "";
    stri := "1" [  0 len  1 ]; ok := ok and stri = "";
    stri := "1" [  0 len  2 ]; ok := ok and stri = "1";
    stri := "1" [  0 len  3 ]; ok := ok and stri = "1";
    stri := "1" [  0 len 15 ]; ok := ok and stri = "1";
    stri := "1" [  1 len -5 ]; ok := ok and stri = "";
    stri := "1" [  1 len  0 ]; ok := ok and stri = "";
    stri := "1" [  1 len  1 ]; ok := ok and stri = "1";
    stri := "1" [  1 len  2 ]; ok := ok and stri = "1";
    stri := "1" [  1 len 15 ]; ok := ok and stri = "1";
    stri := "1" [  2 len -5 ]; ok := ok and stri = "";
    stri := "1" [  2 len  0 ]; ok := ok and stri = "";
    stri := "1" [  2 len  1 ]; ok := ok and stri = "";
    stri := "1" [  2 len  2 ]; ok := ok and stri = "";
    stri := "1" [  2 len 15 ]; ok := ok and stri = "";
    stri := "1" [ 15 len -5 ]; ok := ok and stri = "";
    stri := "1" [ 15 len  0 ]; ok := ok and stri = "";
    stri := "1" [ 15 len  1 ]; ok := ok and stri = "";
    stri := "1" [ 15 len  2 ]; ok := ok and stri = "";
    stri := "1" [ 15 len 20 ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 len -9 ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 len -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 len  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 len  1 ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 len  6 ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 len  7 ]; ok := ok and stri = "1";
    stri := "1234567890" [ -5 len  8 ]; ok := ok and stri = "12";
    stri := "1234567890" [ -5 len 11 ]; ok := ok and stri = "12345";
    stri := "1234567890" [ -5 len 15 ]; ok := ok and stri = "123456789";
    stri := "1234567890" [ -5 len 16 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ -5 len 17 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ -5 len 20 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  0 len -5 ]; ok := ok and stri = "";
    stri := "1234567890" [  0 len -1 ]; ok := ok and stri = "";
    stri := "1234567890" [  0 len  0 ]; ok := ok and stri = "";
    stri := "1234567890" [  0 len  1 ]; ok := ok and stri = "";
    stri := "1234567890" [  0 len  2 ]; ok := ok and stri = "1";
    stri := "1234567890" [  0 len  3 ]; ok := ok and stri = "12";
    stri := "1234567890" [  0 len  6 ]; ok := ok and stri = "12345";
    stri := "1234567890" [  0 len 10 ]; ok := ok and stri = "123456789";
    stri := "1234567890" [  0 len 11 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  0 len 12 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  0 len 15 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  1 len -5 ]; ok := ok and stri = "";
    stri := "1234567890" [  1 len -1 ]; ok := ok and stri = "";
    stri := "1234567890" [  1 len  0 ]; ok := ok and stri = "";
    stri := "1234567890" [  1 len  1 ]; ok := ok and stri = "1";
    stri := "1234567890" [  1 len  2 ]; ok := ok and stri = "12";
    stri := "1234567890" [  1 len  5 ]; ok := ok and stri = "12345";
    stri := "1234567890" [  1 len  9 ]; ok := ok and stri = "123456789";
    stri := "1234567890" [  1 len 10 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  1 len 11 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  1 len 15 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  2 len -5 ]; ok := ok and stri = "";
    stri := "1234567890" [  2 len -1 ]; ok := ok and stri = "";
    stri := "1234567890" [  2 len  0 ]; ok := ok and stri = "";
    stri := "1234567890" [  2 len  1 ]; ok := ok and stri = "2";
    stri := "1234567890" [  2 len  2 ]; ok := ok and stri = "23";
    stri := "1234567890" [  2 len  5 ]; ok := ok and stri = "23456";
    stri := "1234567890" [  2 len  8 ]; ok := ok and stri = "23456789";
    stri := "1234567890" [  2 len  9 ]; ok := ok and stri = "234567890";
    stri := "1234567890" [  2 len 10 ]; ok := ok and stri = "234567890";
    stri := "1234567890" [  2 len 15 ]; ok := ok and stri = "234567890";
    stri := "1234567890" [  5 len -5 ]; ok := ok and stri = "";
    stri := "1234567890" [  5 len -1 ]; ok := ok and stri = "";
    stri := "1234567890" [  5 len  0 ]; ok := ok and stri = "";
    stri := "1234567890" [  5 len  1 ]; ok := ok and stri = "5";
    stri := "1234567890" [  5 len  2 ]; ok := ok and stri = "56";
    stri := "1234567890" [  5 len  5 ]; ok := ok and stri = "56789";
    stri := "1234567890" [  5 len  6 ]; ok := ok and stri = "567890";
    stri := "1234567890" [  5 len  7 ]; ok := ok and stri = "567890";
    stri := "1234567890" [  5 len 15 ]; ok := ok and stri = "567890";
    stri := "1234567890" [  9 len -5 ]; ok := ok and stri = "";
    stri := "1234567890" [  9 len -1 ]; ok := ok and stri = "";
    stri := "1234567890" [  9 len  0 ]; ok := ok and stri = "";
    stri := "1234567890" [  9 len  1 ]; ok := ok and stri = "9";
    stri := "1234567890" [  9 len  2 ]; ok := ok and stri = "90";
    stri := "1234567890" [  9 len  3 ]; ok := ok and stri = "90";
    stri := "1234567890" [  9 len 15 ]; ok := ok and stri = "90";
    stri := "1234567890" [ 10 len -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ 10 len -1 ]; ok := ok and stri = "";
    stri := "1234567890" [ 10 len  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ 10 len  1 ]; ok := ok and stri = "0";
    stri := "1234567890" [ 10 len  2 ]; ok := ok and stri = "0";
    stri := "1234567890" [ 10 len 15 ]; ok := ok and stri = "0";
    stri := "1234567890" [ 11 len -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 len  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 len  1 ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 len  2 ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 len 15 ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 len -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 len  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 len  1 ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 len  2 ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 len 20 ]; ok := ok and stri = "";
    stri := "" [ -5 len intExpr(-9) ]; ok := ok and stri = "";
    stri := "" [ -5 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "" [ -5 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [ -5 len intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [ -5 len intExpr( 6) ]; ok := ok and stri = "";
    stri := "" [ -5 len intExpr( 7) ]; ok := ok and stri = "";
    stri := "" [ -5 len intExpr( 8) ]; ok := ok and stri = "";
    stri := "" [ -5 len intExpr(20) ]; ok := ok and stri = "";
    stri := "" [  0 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "" [  0 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [  0 len intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [  0 len intExpr( 2) ]; ok := ok and stri = "";
    stri := "" [  0 len intExpr(15) ]; ok := ok and stri = "";
    stri := "" [  1 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "" [  1 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [  1 len intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [  1 len intExpr( 2) ]; ok := ok and stri = "";
    stri := "" [  1 len intExpr(15) ]; ok := ok and stri = "";
    stri := "" [  2 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "" [  2 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [  2 len intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [  2 len intExpr(15) ]; ok := ok and stri = "";
    stri := "" [ 15 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "" [ 15 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [ 15 len intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [ 15 len intExpr( 2) ]; ok := ok and stri = "";
    stri := "" [ 15 len intExpr(20) ]; ok := ok and stri = "";
    stri := "1" [ -5 len intExpr(-9) ]; ok := ok and stri = "";
    stri := "1" [ -5 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [ -5 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [ -5 len intExpr( 1) ]; ok := ok and stri = "";
    stri := "1" [ -5 len intExpr( 6) ]; ok := ok and stri = "";
    stri := "1" [ -5 len intExpr( 7) ]; ok := ok and stri = "1";
    stri := "1" [ -5 len intExpr( 8) ]; ok := ok and stri = "1";
    stri := "1" [ -5 len intExpr(10) ]; ok := ok and stri = "1";
    stri := "1" [  0 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [  0 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [  0 len intExpr( 1) ]; ok := ok and stri = "";
    stri := "1" [  0 len intExpr( 2) ]; ok := ok and stri = "1";
    stri := "1" [  0 len intExpr( 3) ]; ok := ok and stri = "1";
    stri := "1" [  0 len intExpr(15) ]; ok := ok and stri = "1";
    stri := "1" [  1 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [  1 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [  1 len intExpr( 1) ]; ok := ok and stri = "1";
    stri := "1" [  1 len intExpr( 2) ]; ok := ok and stri = "1";
    stri := "1" [  1 len intExpr(15) ]; ok := ok and stri = "1";
    stri := "1" [  2 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [  2 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [  2 len intExpr( 1) ]; ok := ok and stri = "";
    stri := "1" [  2 len intExpr( 2) ]; ok := ok and stri = "";
    stri := "1" [  2 len intExpr(15) ]; ok := ok and stri = "";
    stri := "1" [ 15 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [ 15 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [ 15 len intExpr( 1) ]; ok := ok and stri = "";
    stri := "1" [ 15 len intExpr( 2) ]; ok := ok and stri = "";
    stri := "1" [ 15 len intExpr(20) ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 len intExpr(-9) ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 len intExpr( 1) ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 len intExpr( 6) ]; ok := ok and stri = "";
    stri := "1234567890" [ -5 len intExpr( 7) ]; ok := ok and stri = "1";
    stri := "1234567890" [ -5 len intExpr( 8) ]; ok := ok and stri = "12";
    stri := "1234567890" [ -5 len intExpr(11) ]; ok := ok and stri = "12345";
    stri := "1234567890" [ -5 len intExpr(15) ]; ok := ok and stri = "123456789";
    stri := "1234567890" [ -5 len intExpr(16) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ -5 len intExpr(17) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ -5 len intExpr(20) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  0 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [  0 len intExpr(-1) ]; ok := ok and stri = "";
    stri := "1234567890" [  0 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [  0 len intExpr( 1) ]; ok := ok and stri = "";
    stri := "1234567890" [  0 len intExpr( 2) ]; ok := ok and stri = "1";
    stri := "1234567890" [  0 len intExpr( 3) ]; ok := ok and stri = "12";
    stri := "1234567890" [  0 len intExpr( 6) ]; ok := ok and stri = "12345";
    stri := "1234567890" [  0 len intExpr(10) ]; ok := ok and stri = "123456789";
    stri := "1234567890" [  0 len intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  0 len intExpr(12) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  0 len intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  1 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [  1 len intExpr(-1) ]; ok := ok and stri = "";
    stri := "1234567890" [  1 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [  1 len intExpr( 1) ]; ok := ok and stri = "1";
    stri := "1234567890" [  1 len intExpr( 2) ]; ok := ok and stri = "12";
    stri := "1234567890" [  1 len intExpr( 5) ]; ok := ok and stri = "12345";
    stri := "1234567890" [  1 len intExpr( 9) ]; ok := ok and stri = "123456789";
    stri := "1234567890" [  1 len intExpr(10) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  1 len intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  1 len intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [  2 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [  2 len intExpr(-1) ]; ok := ok and stri = "";
    stri := "1234567890" [  2 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [  2 len intExpr( 1) ]; ok := ok and stri = "2";
    stri := "1234567890" [  2 len intExpr( 2) ]; ok := ok and stri = "23";
    stri := "1234567890" [  2 len intExpr( 5) ]; ok := ok and stri = "23456";
    stri := "1234567890" [  2 len intExpr( 8) ]; ok := ok and stri = "23456789";
    stri := "1234567890" [  2 len intExpr( 9) ]; ok := ok and stri = "234567890";
    stri := "1234567890" [  2 len intExpr(10) ]; ok := ok and stri = "234567890";
    stri := "1234567890" [  2 len intExpr(15) ]; ok := ok and stri = "234567890";
    stri := "1234567890" [  5 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [  5 len intExpr(-1) ]; ok := ok and stri = "";
    stri := "1234567890" [  5 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [  5 len intExpr( 1) ]; ok := ok and stri = "5";
    stri := "1234567890" [  5 len intExpr( 2) ]; ok := ok and stri = "56";
    stri := "1234567890" [  5 len intExpr( 5) ]; ok := ok and stri = "56789";
    stri := "1234567890" [  5 len intExpr( 6) ]; ok := ok and stri = "567890";
    stri := "1234567890" [  5 len intExpr( 7) ]; ok := ok and stri = "567890";
    stri := "1234567890" [  5 len intExpr(15) ]; ok := ok and stri = "567890";
    stri := "1234567890" [  9 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [  9 len intExpr(-1) ]; ok := ok and stri = "";
    stri := "1234567890" [  9 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [  9 len intExpr( 1) ]; ok := ok and stri = "9";
    stri := "1234567890" [  9 len intExpr( 2) ]; ok := ok and stri = "90";
    stri := "1234567890" [  9 len intExpr( 3) ]; ok := ok and stri = "90";
    stri := "1234567890" [  9 len intExpr(15) ]; ok := ok and stri = "90";
    stri := "1234567890" [ 10 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ 10 len intExpr(-1) ]; ok := ok and stri = "";
    stri := "1234567890" [ 10 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ 10 len intExpr( 1) ]; ok := ok and stri = "0";
    stri := "1234567890" [ 10 len intExpr( 2) ]; ok := ok and stri = "0";
    stri := "1234567890" [ 10 len intExpr(15) ]; ok := ok and stri = "0";
    stri := "1234567890" [ 11 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 len intExpr( 1) ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 len intExpr( 2) ]; ok := ok and stri = "";
    stri := "1234567890" [ 11 len intExpr(15) ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 len intExpr( 1) ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 len intExpr( 2) ]; ok := ok and stri = "";
    stri := "1234567890" [ 15 len intExpr(20) ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) len -9 ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) len -5 ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) len  0 ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) len  1 ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) len  6 ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) len  7 ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) len  8 ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) len 20 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) len -5 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) len  0 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) len  1 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) len  2 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) len 15 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) len -5 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) len  0 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) len  1 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) len  2 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) len 15 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 2) len -5 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 2) len  0 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 2) len  1 ]; ok := ok and stri = "";
    stri := "" [ intExpr( 2) len 15 ]; ok := ok and stri = "";
    stri := "" [ intExpr(15) len -5 ]; ok := ok and stri = "";
    stri := "" [ intExpr(15) len  0 ]; ok := ok and stri = "";
    stri := "" [ intExpr(15) len  1 ]; ok := ok and stri = "";
    stri := "" [ intExpr(15) len  2 ]; ok := ok and stri = "";
    stri := "" [ intExpr(15) len 20 ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) len -9 ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) len -5 ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) len  0 ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) len  1 ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) len  6 ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) len  7 ]; ok := ok and stri = "1";
    stri := "1" [ intExpr(-5) len  8 ]; ok := ok and stri = "1";
    stri := "1" [ intExpr(-5) len 10 ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 0) len -5 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 0) len  0 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 0) len  1 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 0) len  2 ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 0) len  3 ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 0) len 15 ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 1) len -5 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 1) len  0 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 1) len  1 ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 1) len  2 ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 1) len 15 ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 2) len -5 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 2) len  0 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 2) len  1 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 2) len  2 ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 2) len 15 ]; ok := ok and stri = "";
    stri := "1" [ intExpr(15) len -5 ]; ok := ok and stri = "";
    stri := "1" [ intExpr(15) len  0 ]; ok := ok and stri = "";
    stri := "1" [ intExpr(15) len  1 ]; ok := ok and stri = "";
    stri := "1" [ intExpr(15) len  2 ]; ok := ok and stri = "";
    stri := "1" [ intExpr(15) len 20 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) len -9 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) len -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) len  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) len  1 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) len  6 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) len  7 ]; ok := ok and stri = "1";
    stri := "1234567890" [ intExpr(-5) len  8 ]; ok := ok and stri = "12";
    stri := "1234567890" [ intExpr(-5) len 11 ]; ok := ok and stri = "12345";
    stri := "1234567890" [ intExpr(-5) len 15 ]; ok := ok and stri = "123456789";
    stri := "1234567890" [ intExpr(-5) len 16 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr(-5) len 17 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr(-5) len 20 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 0) len -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 0) len -1 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 0) len  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 0) len  1 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 0) len  2 ]; ok := ok and stri = "1";
    stri := "1234567890" [ intExpr( 0) len  3 ]; ok := ok and stri = "12";
    stri := "1234567890" [ intExpr( 0) len  6 ]; ok := ok and stri = "12345";
    stri := "1234567890" [ intExpr( 0) len 10 ]; ok := ok and stri = "123456789";
    stri := "1234567890" [ intExpr( 0) len 11 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 0) len 12 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 0) len 15 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 1) len -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 1) len -1 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 1) len  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 1) len  1 ]; ok := ok and stri = "1";
    stri := "1234567890" [ intExpr( 1) len  2 ]; ok := ok and stri = "12";
    stri := "1234567890" [ intExpr( 1) len  5 ]; ok := ok and stri = "12345";
    stri := "1234567890" [ intExpr( 1) len  9 ]; ok := ok and stri = "123456789";
    stri := "1234567890" [ intExpr( 1) len 10 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 1) len 11 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 1) len 15 ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 2) len -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 2) len -1 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 2) len  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 2) len  1 ]; ok := ok and stri = "2";
    stri := "1234567890" [ intExpr( 2) len  2 ]; ok := ok and stri = "23";
    stri := "1234567890" [ intExpr( 2) len  5 ]; ok := ok and stri = "23456";
    stri := "1234567890" [ intExpr( 2) len  8 ]; ok := ok and stri = "23456789";
    stri := "1234567890" [ intExpr( 2) len  9 ]; ok := ok and stri = "234567890";
    stri := "1234567890" [ intExpr( 2) len 10 ]; ok := ok and stri = "234567890";
    stri := "1234567890" [ intExpr( 2) len 15 ]; ok := ok and stri = "234567890";
    stri := "1234567890" [ intExpr( 5) len -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 5) len -1 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 5) len  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 5) len  1 ]; ok := ok and stri = "5";
    stri := "1234567890" [ intExpr( 5) len  2 ]; ok := ok and stri = "56";
    stri := "1234567890" [ intExpr( 5) len  5 ]; ok := ok and stri = "56789";
    stri := "1234567890" [ intExpr( 5) len  6 ]; ok := ok and stri = "567890";
    stri := "1234567890" [ intExpr( 5) len  7 ]; ok := ok and stri = "567890";
    stri := "1234567890" [ intExpr( 5) len 15 ]; ok := ok and stri = "567890";
    stri := "1234567890" [ intExpr( 9) len -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 9) len -1 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 9) len  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 9) len  1 ]; ok := ok and stri = "9";
    stri := "1234567890" [ intExpr( 9) len  2 ]; ok := ok and stri = "90";
    stri := "1234567890" [ intExpr( 9) len  3 ]; ok := ok and stri = "90";
    stri := "1234567890" [ intExpr( 9) len 15 ]; ok := ok and stri = "90";
    stri := "1234567890" [ intExpr(10) len -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(10) len -1 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(10) len  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(10) len  1 ]; ok := ok and stri = "0";
    stri := "1234567890" [ intExpr(10) len  2 ]; ok := ok and stri = "0";
    stri := "1234567890" [ intExpr(10) len 15 ]; ok := ok and stri = "0";
    stri := "1234567890" [ intExpr(11) len -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) len  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) len  1 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) len  2 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) len 15 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) len -5 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) len  0 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) len  1 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) len  2 ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) len 20 ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) len intExpr(-9) ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) len intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) len intExpr( 6) ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) len intExpr( 7) ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) len intExpr( 8) ]; ok := ok and stri = "";
    stri := "" [ intExpr(-5) len intExpr(20) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) len intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) len intExpr( 2) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 0) len intExpr(15) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) len intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) len intExpr( 2) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 1) len intExpr(15) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 2) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 2) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 2) len intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [ intExpr( 2) len intExpr(15) ]; ok := ok and stri = "";
    stri := "" [ intExpr(15) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "" [ intExpr(15) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "" [ intExpr(15) len intExpr( 1) ]; ok := ok and stri = "";
    stri := "" [ intExpr(15) len intExpr( 2) ]; ok := ok and stri = "";
    stri := "" [ intExpr(15) len intExpr(20) ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) len intExpr(-9) ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) len intExpr( 1) ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) len intExpr( 6) ]; ok := ok and stri = "";
    stri := "1" [ intExpr(-5) len intExpr( 7) ]; ok := ok and stri = "1";
    stri := "1" [ intExpr(-5) len intExpr( 8) ]; ok := ok and stri = "1";
    stri := "1" [ intExpr(-5) len intExpr(10) ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 0) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 0) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 0) len intExpr( 1) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 0) len intExpr( 2) ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 0) len intExpr( 3) ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 0) len intExpr(15) ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 1) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 1) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 1) len intExpr( 1) ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 1) len intExpr( 2) ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 1) len intExpr(15) ]; ok := ok and stri = "1";
    stri := "1" [ intExpr( 2) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 5) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 2) len intExpr( 1) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 2) len intExpr( 2) ]; ok := ok and stri = "";
    stri := "1" [ intExpr( 2) len intExpr(15) ]; ok := ok and stri = "";
    stri := "1" [ intExpr(15) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1" [ intExpr(15) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1" [ intExpr(15) len intExpr( 1) ]; ok := ok and stri = "";
    stri := "1" [ intExpr(15) len intExpr( 2) ]; ok := ok and stri = "";
    stri := "1" [ intExpr(15) len intExpr(20) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) len intExpr(-9) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) len intExpr( 1) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) len intExpr( 6) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(-5) len intExpr( 7) ]; ok := ok and stri = "1";
    stri := "1234567890" [ intExpr(-5) len intExpr( 8) ]; ok := ok and stri = "12";
    stri := "1234567890" [ intExpr(-5) len intExpr(11) ]; ok := ok and stri = "12345";
    stri := "1234567890" [ intExpr(-5) len intExpr(15) ]; ok := ok and stri = "123456789";
    stri := "1234567890" [ intExpr(-5) len intExpr(16) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr(-5) len intExpr(17) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr(-5) len intExpr(20) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 0) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 0) len intExpr(-1) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 0) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 0) len intExpr( 1) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 0) len intExpr( 2) ]; ok := ok and stri = "1";
    stri := "1234567890" [ intExpr( 0) len intExpr( 3) ]; ok := ok and stri = "12";
    stri := "1234567890" [ intExpr( 0) len intExpr( 6) ]; ok := ok and stri = "12345";
    stri := "1234567890" [ intExpr( 0) len intExpr(10) ]; ok := ok and stri = "123456789";
    stri := "1234567890" [ intExpr( 0) len intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 0) len intExpr(12) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 0) len intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 1) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 1) len intExpr(-1) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 1) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 1) len intExpr( 1) ]; ok := ok and stri = "1";
    stri := "1234567890" [ intExpr( 1) len intExpr( 2) ]; ok := ok and stri = "12";
    stri := "1234567890" [ intExpr( 1) len intExpr( 5) ]; ok := ok and stri = "12345";
    stri := "1234567890" [ intExpr( 1) len intExpr( 9) ]; ok := ok and stri = "123456789";
    stri := "1234567890" [ intExpr( 1) len intExpr(10) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 1) len intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 1) len intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := "1234567890" [ intExpr( 2) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 2) len intExpr(-1) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 2) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 2) len intExpr( 1) ]; ok := ok and stri = "2";
    stri := "1234567890" [ intExpr( 2) len intExpr( 2) ]; ok := ok and stri = "23";
    stri := "1234567890" [ intExpr( 2) len intExpr( 5) ]; ok := ok and stri = "23456";
    stri := "1234567890" [ intExpr( 2) len intExpr( 8) ]; ok := ok and stri = "23456789";
    stri := "1234567890" [ intExpr( 2) len intExpr( 9) ]; ok := ok and stri = "234567890";
    stri := "1234567890" [ intExpr( 2) len intExpr(10) ]; ok := ok and stri = "234567890";
    stri := "1234567890" [ intExpr( 2) len intExpr(15) ]; ok := ok and stri = "234567890";
    stri := "1234567890" [ intExpr( 5) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 5) len intExpr(-1) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 5) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 5) len intExpr( 1) ]; ok := ok and stri = "5";
    stri := "1234567890" [ intExpr( 5) len intExpr( 2) ]; ok := ok and stri = "56";
    stri := "1234567890" [ intExpr( 5) len intExpr( 5) ]; ok := ok and stri = "56789";
    stri := "1234567890" [ intExpr( 5) len intExpr( 6) ]; ok := ok and stri = "567890";
    stri := "1234567890" [ intExpr( 5) len intExpr( 7) ]; ok := ok and stri = "567890";
    stri := "1234567890" [ intExpr( 5) len intExpr(15) ]; ok := ok and stri = "567890";
    stri := "1234567890" [ intExpr( 9) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 9) len intExpr(-1) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 9) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr( 9) len intExpr( 1) ]; ok := ok and stri = "9";
    stri := "1234567890" [ intExpr( 9) len intExpr( 2) ]; ok := ok and stri = "90";
    stri := "1234567890" [ intExpr( 9) len intExpr( 3) ]; ok := ok and stri = "90";
    stri := "1234567890" [ intExpr( 9) len intExpr(15) ]; ok := ok and stri = "90";
    stri := "1234567890" [ intExpr(10) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(10) len intExpr(-1) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(10) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(10) len intExpr( 1) ]; ok := ok and stri = "0";
    stri := "1234567890" [ intExpr(10) len intExpr( 2) ]; ok := ok and stri = "0";
    stri := "1234567890" [ intExpr(10) len intExpr(15) ]; ok := ok and stri = "0";
    stri := "1234567890" [ intExpr(11) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) len intExpr( 1) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) len intExpr( 2) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(11) len intExpr(15) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) len intExpr(-5) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) len intExpr( 0) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) len intExpr( 1) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) len intExpr( 2) ]; ok := ok and stri = "";
    stri := "1234567890" [ intExpr(15) len intExpr(20) ]; ok := ok and stri = "";
    if not ok then
      writeln(" ***** stri := STRING [ START len LENGTH ] does not work correct. (1)");
      okay := FALSE;
    end if;

    stri := striExpr("") [ -5 len -9 ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 len -5 ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 len  0 ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 len  1 ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 len  6 ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 len  7 ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 len  8 ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 len 20 ]; ok := ok and stri = "";
    stri := striExpr("") [  0 len -5 ]; ok := ok and stri = "";
    stri := striExpr("") [  0 len  0 ]; ok := ok and stri = "";
    stri := striExpr("") [  0 len  1 ]; ok := ok and stri = "";
    stri := striExpr("") [  0 len  2 ]; ok := ok and stri = "";
    stri := striExpr("") [  0 len 15 ]; ok := ok and stri = "";
    stri := striExpr("") [  1 len -5 ]; ok := ok and stri = "";
    stri := striExpr("") [  1 len  0 ]; ok := ok and stri = "";
    stri := striExpr("") [  1 len  1 ]; ok := ok and stri = "";
    stri := striExpr("") [  1 len  2 ]; ok := ok and stri = "";
    stri := striExpr("") [  1 len 15 ]; ok := ok and stri = "";
    stri := striExpr("") [  2 len -5 ]; ok := ok and stri = "";
    stri := striExpr("") [  2 len  0 ]; ok := ok and stri = "";
    stri := striExpr("") [  2 len  1 ]; ok := ok and stri = "";
    stri := striExpr("") [  2 len 15 ]; ok := ok and stri = "";
    stri := striExpr("") [ 15 len -5 ]; ok := ok and stri = "";
    stri := striExpr("") [ 15 len  0 ]; ok := ok and stri = "";
    stri := striExpr("") [ 15 len  1 ]; ok := ok and stri = "";
    stri := striExpr("") [ 15 len  2 ]; ok := ok and stri = "";
    stri := striExpr("") [ 15 len 20 ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 len -9 ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 len -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 len  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 len  1 ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 len  6 ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 len  7 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ -5 len  8 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ -5 len 10 ]; ok := ok and stri = "1";
    stri := striExpr("1") [  0 len -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [  0 len  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [  0 len  1 ]; ok := ok and stri = "";
    stri := striExpr("1") [  0 len  2 ]; ok := ok and stri = "1";
    stri := striExpr("1") [  0 len  3 ]; ok := ok and stri = "1";
    stri := striExpr("1") [  0 len 15 ]; ok := ok and stri = "1";
    stri := striExpr("1") [  1 len -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [  1 len  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [  1 len  1 ]; ok := ok and stri = "1";
    stri := striExpr("1") [  1 len  2 ]; ok := ok and stri = "1";
    stri := striExpr("1") [  1 len 15 ]; ok := ok and stri = "1";
    stri := striExpr("1") [  2 len -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [  2 len  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [  2 len  1 ]; ok := ok and stri = "";
    stri := striExpr("1") [  2 len  2 ]; ok := ok and stri = "";
    stri := striExpr("1") [  2 len 15 ]; ok := ok and stri = "";
    stri := striExpr("1") [ 15 len -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [ 15 len  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [ 15 len  1 ]; ok := ok and stri = "";
    stri := striExpr("1") [ 15 len  2 ]; ok := ok and stri = "";
    stri := striExpr("1") [ 15 len 20 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 len -9 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 len -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 len  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 len  1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 len  6 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 len  7 ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ -5 len  8 ]; ok := ok and stri = "12";
    stri := striExpr("1234567890") [ -5 len 11 ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [ -5 len 15 ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [ -5 len 16 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ -5 len 17 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ -5 len 20 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  0 len -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  0 len -1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  0 len  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  0 len  1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  0 len  2 ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [  0 len  3 ]; ok := ok and stri = "12";
    stri := striExpr("1234567890") [  0 len  6 ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [  0 len 10 ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [  0 len 11 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  0 len 12 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  0 len 15 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  1 len -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  1 len -1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  1 len  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  1 len  1 ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [  1 len  2 ]; ok := ok and stri = "12";
    stri := striExpr("1234567890") [  1 len  5 ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [  1 len  9 ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [  1 len 10 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  1 len 11 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  1 len 15 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  2 len -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  2 len -1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  2 len  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  2 len  1 ]; ok := ok and stri = "2";
    stri := striExpr("1234567890") [  2 len  2 ]; ok := ok and stri = "23";
    stri := striExpr("1234567890") [  2 len  5 ]; ok := ok and stri = "23456";
    stri := striExpr("1234567890") [  2 len  8 ]; ok := ok and stri = "23456789";
    stri := striExpr("1234567890") [  2 len  9 ]; ok := ok and stri = "234567890";
    stri := striExpr("1234567890") [  2 len 10 ]; ok := ok and stri = "234567890";
    stri := striExpr("1234567890") [  2 len 15 ]; ok := ok and stri = "234567890";
    stri := striExpr("1234567890") [  5 len -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  5 len -1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  5 len  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  5 len  1 ]; ok := ok and stri = "5";
    stri := striExpr("1234567890") [  5 len  2 ]; ok := ok and stri = "56";
    stri := striExpr("1234567890") [  5 len  5 ]; ok := ok and stri = "56789";
    stri := striExpr("1234567890") [  5 len  6 ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [  5 len  7 ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [  5 len 15 ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [  9 len -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  9 len -1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  9 len  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  9 len  1 ]; ok := ok and stri = "9";
    stri := striExpr("1234567890") [  9 len  2 ]; ok := ok and stri = "90";
    stri := striExpr("1234567890") [  9 len  3 ]; ok := ok and stri = "90";
    stri := striExpr("1234567890") [  9 len 15 ]; ok := ok and stri = "90";
    stri := striExpr("1234567890") [ 10 len -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 10 len -1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 10 len  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 10 len  1 ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ 10 len  2 ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ 10 len 15 ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ 11 len -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 len  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 len  1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 len  2 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 len 15 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 len -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 len  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 len  1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 len  2 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 len 20 ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 len intExpr(-9) ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 len intExpr( 6) ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 len intExpr( 7) ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 len intExpr( 8) ]; ok := ok and stri = "";
    stri := striExpr("") [ -5 len intExpr(20) ]; ok := ok and stri = "";
    stri := striExpr("") [  0 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("") [  0 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [  0 len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [  0 len intExpr( 2) ]; ok := ok and stri = "";
    stri := striExpr("") [  0 len intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("") [  1 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("") [  1 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [  1 len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [  1 len intExpr( 2) ]; ok := ok and stri = "";
    stri := striExpr("") [  1 len intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("") [  2 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("") [  2 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [  2 len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [  2 len intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("") [ 15 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("") [ 15 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [ 15 len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [ 15 len intExpr( 2) ]; ok := ok and stri = "";
    stri := striExpr("") [ 15 len intExpr(20) ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 len intExpr(-9) ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 len intExpr( 6) ]; ok := ok and stri = "";
    stri := striExpr("1") [ -5 len intExpr( 7) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ -5 len intExpr( 8) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ -5 len intExpr(10) ]; ok := ok and stri = "1";
    stri := striExpr("1") [  0 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [  0 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [  0 len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1") [  0 len intExpr( 2) ]; ok := ok and stri = "1";
    stri := striExpr("1") [  0 len intExpr( 3) ]; ok := ok and stri = "1";
    stri := striExpr("1") [  0 len intExpr(15) ]; ok := ok and stri = "1";
    stri := striExpr("1") [  1 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [  1 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [  1 len intExpr( 1) ]; ok := ok and stri = "1";
    stri := striExpr("1") [  1 len intExpr( 2) ]; ok := ok and stri = "1";
    stri := striExpr("1") [  1 len intExpr(15) ]; ok := ok and stri = "1";
    stri := striExpr("1") [  2 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [  2 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [  2 len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1") [  2 len intExpr( 2) ]; ok := ok and stri = "";
    stri := striExpr("1") [  2 len intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("1") [ 15 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [ 15 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [ 15 len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1") [ 15 len intExpr( 2) ]; ok := ok and stri = "";
    stri := striExpr("1") [ 15 len intExpr(20) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 len intExpr(-9) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 len intExpr( 6) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ -5 len intExpr( 7) ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ -5 len intExpr( 8) ]; ok := ok and stri = "12";
    stri := striExpr("1234567890") [ -5 len intExpr(11) ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [ -5 len intExpr(15) ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [ -5 len intExpr(16) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ -5 len intExpr(17) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ -5 len intExpr(20) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  0 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  0 len intExpr(-1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  0 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  0 len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  0 len intExpr( 2) ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [  0 len intExpr( 3) ]; ok := ok and stri = "12";
    stri := striExpr("1234567890") [  0 len intExpr( 6) ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [  0 len intExpr(10) ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [  0 len intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  0 len intExpr(12) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  0 len intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  1 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  1 len intExpr(-1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  1 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  1 len intExpr( 1) ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [  1 len intExpr( 2) ]; ok := ok and stri = "12";
    stri := striExpr("1234567890") [  1 len intExpr( 5) ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [  1 len intExpr( 9) ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [  1 len intExpr(10) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  1 len intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  1 len intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [  2 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  2 len intExpr(-1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  2 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  2 len intExpr( 1) ]; ok := ok and stri = "2";
    stri := striExpr("1234567890") [  2 len intExpr( 2) ]; ok := ok and stri = "23";
    stri := striExpr("1234567890") [  2 len intExpr( 5) ]; ok := ok and stri = "23456";
    stri := striExpr("1234567890") [  2 len intExpr( 8) ]; ok := ok and stri = "23456789";
    stri := striExpr("1234567890") [  2 len intExpr( 9) ]; ok := ok and stri = "234567890";
    stri := striExpr("1234567890") [  2 len intExpr(10) ]; ok := ok and stri = "234567890";
    stri := striExpr("1234567890") [  2 len intExpr(15) ]; ok := ok and stri = "234567890";
    stri := striExpr("1234567890") [  5 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  5 len intExpr(-1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  5 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  5 len intExpr( 1) ]; ok := ok and stri = "5";
    stri := striExpr("1234567890") [  5 len intExpr( 2) ]; ok := ok and stri = "56";
    stri := striExpr("1234567890") [  5 len intExpr( 5) ]; ok := ok and stri = "56789";
    stri := striExpr("1234567890") [  5 len intExpr( 6) ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [  5 len intExpr( 7) ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [  5 len intExpr(15) ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [  9 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  9 len intExpr(-1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  9 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [  9 len intExpr( 1) ]; ok := ok and stri = "9";
    stri := striExpr("1234567890") [  9 len intExpr( 2) ]; ok := ok and stri = "90";
    stri := striExpr("1234567890") [  9 len intExpr( 3) ]; ok := ok and stri = "90";
    stri := striExpr("1234567890") [  9 len intExpr(15) ]; ok := ok and stri = "90";
    stri := striExpr("1234567890") [ 10 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 10 len intExpr(-1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 10 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 10 len intExpr( 1) ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ 10 len intExpr( 2) ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ 10 len intExpr(15) ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ 11 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 len intExpr( 2) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 11 len intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 len intExpr( 2) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ 15 len intExpr(20) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) len -9 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) len -5 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) len  0 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) len  1 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) len  6 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) len  7 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) len  8 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) len 20 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) len -5 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) len  0 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) len  1 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) len  2 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) len 15 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) len -5 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) len  0 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) len  1 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) len  2 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) len 15 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 2) len -5 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 2) len  0 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 2) len  1 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 2) len 15 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(15) len -5 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(15) len  0 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(15) len  1 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(15) len  2 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(15) len 20 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) len -9 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) len -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) len  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) len  1 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) len  6 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) len  7 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr(-5) len  8 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr(-5) len 10 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 0) len -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 0) len  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 0) len  1 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 0) len  2 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 0) len  3 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 0) len 15 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 1) len -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 1) len  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 1) len  1 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 1) len  2 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 1) len 15 ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 2) len -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 2) len  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 2) len  1 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 2) len  2 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 2) len 15 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(15) len -5 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(15) len  0 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(15) len  1 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(15) len  2 ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(15) len 20 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) len -9 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) len -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) len  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) len  1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) len  6 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) len  7 ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ intExpr(-5) len  8 ]; ok := ok and stri = "12";
    stri := striExpr("1234567890") [ intExpr(-5) len 11 ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [ intExpr(-5) len 15 ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [ intExpr(-5) len 16 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr(-5) len 17 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr(-5) len 20 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 0) len -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 0) len -1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 0) len  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 0) len  1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 0) len  2 ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ intExpr( 0) len  3 ]; ok := ok and stri = "12";
    stri := striExpr("1234567890") [ intExpr( 0) len  6 ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [ intExpr( 0) len 10 ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [ intExpr( 0) len 11 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 0) len 12 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 0) len 15 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 1) len -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 1) len -1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 1) len  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 1) len  1 ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ intExpr( 1) len  2 ]; ok := ok and stri = "12";
    stri := striExpr("1234567890") [ intExpr( 1) len  5 ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [ intExpr( 1) len  9 ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [ intExpr( 1) len 10 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 1) len 11 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 1) len 15 ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 2) len -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 2) len -1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 2) len  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 2) len  1 ]; ok := ok and stri = "2";
    stri := striExpr("1234567890") [ intExpr( 2) len  2 ]; ok := ok and stri = "23";
    stri := striExpr("1234567890") [ intExpr( 2) len  5 ]; ok := ok and stri = "23456";
    stri := striExpr("1234567890") [ intExpr( 2) len  8 ]; ok := ok and stri = "23456789";
    stri := striExpr("1234567890") [ intExpr( 2) len  9 ]; ok := ok and stri = "234567890";
    stri := striExpr("1234567890") [ intExpr( 2) len 10 ]; ok := ok and stri = "234567890";
    stri := striExpr("1234567890") [ intExpr( 2) len 15 ]; ok := ok and stri = "234567890";
    stri := striExpr("1234567890") [ intExpr( 5) len -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 5) len -1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 5) len  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 5) len  1 ]; ok := ok and stri = "5";
    stri := striExpr("1234567890") [ intExpr( 5) len  2 ]; ok := ok and stri = "56";
    stri := striExpr("1234567890") [ intExpr( 5) len  5 ]; ok := ok and stri = "56789";
    stri := striExpr("1234567890") [ intExpr( 5) len  6 ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [ intExpr( 5) len  7 ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [ intExpr( 5) len 15 ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [ intExpr( 9) len -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 9) len -1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 9) len  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 9) len  1 ]; ok := ok and stri = "9";
    stri := striExpr("1234567890") [ intExpr( 9) len  2 ]; ok := ok and stri = "90";
    stri := striExpr("1234567890") [ intExpr( 9) len  3 ]; ok := ok and stri = "90";
    stri := striExpr("1234567890") [ intExpr( 9) len 15 ]; ok := ok and stri = "90";
    stri := striExpr("1234567890") [ intExpr(10) len -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(10) len -1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(10) len  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(10) len  1 ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ intExpr(10) len  2 ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ intExpr(10) len 15 ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ intExpr(11) len -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) len  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) len  1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) len  2 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) len 15 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) len -5 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) len  0 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) len  1 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) len  2 ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) len 20 ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) len intExpr(-9) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) len intExpr( 6) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) len intExpr( 7) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) len intExpr( 8) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(-5) len intExpr(20) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) len intExpr( 2) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 0) len intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) len intExpr( 2) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 1) len intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 2) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 2) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 2) len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr( 2) len intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(15) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(15) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(15) len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(15) len intExpr( 2) ]; ok := ok and stri = "";
    stri := striExpr("") [ intExpr(15) len intExpr(20) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) len intExpr(-9) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) len intExpr( 6) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(-5) len intExpr( 7) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr(-5) len intExpr( 8) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr(-5) len intExpr(10) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 0) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 0) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 0) len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 0) len intExpr( 2) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 0) len intExpr( 3) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 0) len intExpr(15) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 1) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 1) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 1) len intExpr( 1) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 1) len intExpr( 2) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 1) len intExpr(15) ]; ok := ok and stri = "1";
    stri := striExpr("1") [ intExpr( 2) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 2) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 2) len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 2) len intExpr( 2) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr( 2) len intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(15) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(15) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(15) len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(15) len intExpr( 2) ]; ok := ok and stri = "";
    stri := striExpr("1") [ intExpr(15) len intExpr(20) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) len intExpr(-9) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) len intExpr( 6) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(-5) len intExpr( 7) ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ intExpr(-5) len intExpr( 8) ]; ok := ok and stri = "12";
    stri := striExpr("1234567890") [ intExpr(-5) len intExpr(11) ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [ intExpr(-5) len intExpr(15) ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [ intExpr(-5) len intExpr(16) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr(-5) len intExpr(17) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr(-5) len intExpr(20) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 0) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 0) len intExpr(-1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 0) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 0) len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 0) len intExpr( 2) ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ intExpr( 0) len intExpr( 3) ]; ok := ok and stri = "12";
    stri := striExpr("1234567890") [ intExpr( 0) len intExpr( 6) ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [ intExpr( 0) len intExpr(10) ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [ intExpr( 0) len intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 0) len intExpr(12) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 0) len intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 1) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 1) len intExpr(-1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 1) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 1) len intExpr( 1) ]; ok := ok and stri = "1";
    stri := striExpr("1234567890") [ intExpr( 1) len intExpr( 2) ]; ok := ok and stri = "12";
    stri := striExpr("1234567890") [ intExpr( 1) len intExpr( 5) ]; ok := ok and stri = "12345";
    stri := striExpr("1234567890") [ intExpr( 1) len intExpr( 9) ]; ok := ok and stri = "123456789";
    stri := striExpr("1234567890") [ intExpr( 1) len intExpr(10) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 1) len intExpr(11) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 1) len intExpr(15) ]; ok := ok and stri = "1234567890";
    stri := striExpr("1234567890") [ intExpr( 2) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 2) len intExpr(-1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 2) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 2) len intExpr( 1) ]; ok := ok and stri = "2";
    stri := striExpr("1234567890") [ intExpr( 2) len intExpr( 2) ]; ok := ok and stri = "23";
    stri := striExpr("1234567890") [ intExpr( 2) len intExpr( 5) ]; ok := ok and stri = "23456";
    stri := striExpr("1234567890") [ intExpr( 2) len intExpr( 8) ]; ok := ok and stri = "23456789";
    stri := striExpr("1234567890") [ intExpr( 2) len intExpr( 9) ]; ok := ok and stri = "234567890";
    stri := striExpr("1234567890") [ intExpr( 2) len intExpr(10) ]; ok := ok and stri = "234567890";
    stri := striExpr("1234567890") [ intExpr( 2) len intExpr(15) ]; ok := ok and stri = "234567890";
    stri := striExpr("1234567890") [ intExpr( 5) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 5) len intExpr(-1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 5) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 5) len intExpr( 1) ]; ok := ok and stri = "5";
    stri := striExpr("1234567890") [ intExpr( 5) len intExpr( 2) ]; ok := ok and stri = "56";
    stri := striExpr("1234567890") [ intExpr( 5) len intExpr( 5) ]; ok := ok and stri = "56789";
    stri := striExpr("1234567890") [ intExpr( 5) len intExpr( 6) ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [ intExpr( 5) len intExpr( 7) ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [ intExpr( 5) len intExpr(15) ]; ok := ok and stri = "567890";
    stri := striExpr("1234567890") [ intExpr( 9) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 9) len intExpr(-1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 9) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr( 9) len intExpr( 1) ]; ok := ok and stri = "9";
    stri := striExpr("1234567890") [ intExpr( 9) len intExpr( 2) ]; ok := ok and stri = "90";
    stri := striExpr("1234567890") [ intExpr( 9) len intExpr( 3) ]; ok := ok and stri = "90";
    stri := striExpr("1234567890") [ intExpr( 9) len intExpr(15) ]; ok := ok and stri = "90";
    stri := striExpr("1234567890") [ intExpr(10) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(10) len intExpr(-1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(10) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(10) len intExpr( 1) ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ intExpr(10) len intExpr( 2) ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ intExpr(10) len intExpr(15) ]; ok := ok and stri = "0";
    stri := striExpr("1234567890") [ intExpr(11) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) len intExpr( 2) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(11) len intExpr(15) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) len intExpr(-5) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) len intExpr( 0) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) len intExpr( 1) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) len intExpr( 2) ]; ok := ok and stri = "";
    stri := striExpr("1234567890") [ intExpr(15) len intExpr(20) ]; ok := ok and stri = "";
    if not ok then
      writeln(" ***** stri := STRING [ START len LENGTH ] does not work correct. (2)");
      okay := FALSE;
    end if;

    if  substrFunction("", -5) <> "" or
        substrFunction("",  0) <> "" or
        substrFunction("",  1) <> "" or
        substrFunction("",  2) <> "" or
        substrFunction("", 15) <> "" or
        substrFunction("1", -5) <> "" or
        substrFunction("1",  0) <> "" or
        substrFunction("1",  1) <> "1" or
        substrFunction("1",  2) <> "" or
        substrFunction("1", 15) <> "" or
        substrFunction("1234567890", -5) <> "" or
        substrFunction("1234567890",  0) <> "" or
        substrFunction("1234567890",  1) <> "1" or
        substrFunction("1234567890",  2) <> "2" or
        substrFunction("1234567890",  5) <> "5" or
        substrFunction("1234567890",  9) <> "9" or
        substrFunction("1234567890", 10) <> "0" or
        substrFunction("1234567890", 11) <> "" or
        substrFunction("1234567890", 15) <> "" or
        substrFunction("", intExpr(-5)) <> "" or
        substrFunction("", intExpr( 0)) <> "" or
        substrFunction("", intExpr( 1)) <> "" or
        substrFunction("", intExpr( 2)) <> "" or
        substrFunction("", intExpr(15)) <> "" or
        substrFunction("1", intExpr(-5)) <> "" or
        substrFunction("1", intExpr( 0)) <> "" or
        substrFunction("1", intExpr( 1)) <> "1" or
        substrFunction("1", intExpr( 2)) <> "" or
        substrFunction("1", intExpr(15)) <> "" or
        substrFunction("1234567890", intExpr(-5)) <> "" or
        substrFunction("1234567890", intExpr( 0)) <> "" or
        substrFunction("1234567890", intExpr( 1)) <> "1" or
        substrFunction("1234567890", intExpr( 2)) <> "2" or
        substrFunction("1234567890", intExpr( 5)) <> "5" or
        substrFunction("1234567890", intExpr( 9)) <> "9" or
        substrFunction("1234567890", intExpr(10)) <> "0" or
        substrFunction("1234567890", intExpr(11)) <> "" or
        substrFunction("1234567890", intExpr(15)) <> "" or
        substrFunction(striExpr(""), -5) <> "" or
        substrFunction(striExpr(""),  0) <> "" or
        substrFunction(striExpr(""),  1) <> "" or
        substrFunction(striExpr(""),  2) <> "" or
        substrFunction(striExpr(""), 15) <> "" or
        substrFunction(striExpr("1"), -5) <> "" or
        substrFunction(striExpr("1"),  0) <> "" or
        substrFunction(striExpr("1"),  1) <> "1" or
        substrFunction(striExpr("1"),  2) <> "" or
        substrFunction(striExpr("1"), 15) <> "" or
        substrFunction(striExpr("1234567890"), -5) <> "" or
        substrFunction(striExpr("1234567890"),  0) <> "" or
        substrFunction(striExpr("1234567890"),  1) <> "1" or
        substrFunction(striExpr("1234567890"),  2) <> "2" or
        substrFunction(striExpr("1234567890"),  5) <> "5" or
        substrFunction(striExpr("1234567890"),  9) <> "9" or
        substrFunction(striExpr("1234567890"), 10) <> "0" or
        substrFunction(striExpr("1234567890"), 11) <> "" or
        substrFunction(striExpr("1234567890"), 15) <> "" or
        substrFunction(striExpr(""), intExpr(-5)) <> "" or
        substrFunction(striExpr(""), intExpr( 0)) <> "" or
        substrFunction(striExpr(""), intExpr( 1)) <> "" or
        substrFunction(striExpr(""), intExpr( 2)) <> "" or
        substrFunction(striExpr(""), intExpr(15)) <> "" or
        substrFunction(striExpr("1"), intExpr(-5)) <> "" or
        substrFunction(striExpr("1"), intExpr( 0)) <> "" or
        substrFunction(striExpr("1"), intExpr( 1)) <> "1" or
        substrFunction(striExpr("1"), intExpr( 2)) <> "" or
        substrFunction(striExpr("1"), intExpr(15)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 1)) <> "1" or
        substrFunction(striExpr("1234567890"), intExpr( 2)) <> "2" or
        substrFunction(striExpr("1234567890"), intExpr( 5)) <> "5" or
        substrFunction(striExpr("1234567890"), intExpr( 9)) <> "9" or
        substrFunction(striExpr("1234567890"), intExpr(10)) <> "0" or
        substrFunction(striExpr("1234567890"), intExpr(11)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(15)) <> "" then
      writeln(" ***** STRING [ START len 1 ] via a function does not work correct.");
      okay := FALSE;
    end if;

    if  substrFunction("", -5, -9) <> "" or
        substrFunction("", -5, -5) <> "" or
        substrFunction("", -5,  0) <> "" or
        substrFunction("", -5,  1) <> "" or
        substrFunction("", -5,  6) <> "" or
        substrFunction("", -5,  7) <> "" or
        substrFunction("", -5,  8) <> "" or
        substrFunction("", -5, 20) <> "" or
        substrFunction("",  0, -5) <> "" or
        substrFunction("",  0,  0) <> "" or
        substrFunction("",  0,  1) <> "" or
        substrFunction("",  0,  2) <> "" or
        substrFunction("",  0, 15) <> "" or
        substrFunction("",  1, -5) <> "" or
        substrFunction("",  1,  0) <> "" or
        substrFunction("",  1,  1) <> "" or
        substrFunction("",  1,  2) <> "" or
        substrFunction("",  1, 15) <> "" or
        substrFunction("",  2, -5) <> "" or
        substrFunction("",  2,  0) <> "" or
        substrFunction("",  2,  1) <> "" or
        substrFunction("",  2, 15) <> "" or
        substrFunction("", 15, -5) <> "" or
        substrFunction("", 15,  0) <> "" or
        substrFunction("", 15,  1) <> "" or
        substrFunction("", 15,  2) <> "" or
        substrFunction("", 15, 20) <> "" or
        substrFunction("1", -5, -9) <> "" or
        substrFunction("1", -5, -5) <> "" or
        substrFunction("1", -5,  0) <> "" or
        substrFunction("1", -5,  1) <> "" or
        substrFunction("1", -5,  6) <> "" or
        substrFunction("1", -5,  7) <> "1" or
        substrFunction("1", -5,  8) <> "1" or
        substrFunction("1", -5, 10) <> "1" or
        substrFunction("1",  0, -5) <> "" or
        substrFunction("1",  0,  0) <> "" or
        substrFunction("1",  0,  1) <> "" or
        substrFunction("1",  0,  2) <> "1" or
        substrFunction("1",  0,  3) <> "1" or
        substrFunction("1",  0, 15) <> "1" or
        substrFunction("1",  1, -5) <> "" or
        substrFunction("1",  1,  0) <> "" or
        substrFunction("1",  1,  1) <> "1" or
        substrFunction("1",  1,  2) <> "1" or
        substrFunction("1",  1, 15) <> "1" or
        substrFunction("1",  2, -5) <> "" or
        substrFunction("1",  2,  0) <> "" or
        substrFunction("1",  2,  1) <> "" or
        substrFunction("1",  2,  2) <> "" or
        substrFunction("1",  2, 15) <> "" or
        substrFunction("1", 15, -5) <> "" or
        substrFunction("1", 15,  0) <> "" or
        substrFunction("1", 15,  1) <> "" or
        substrFunction("1", 15,  2) <> "" or
        substrFunction("1", 15, 20) <> "" or
        substrFunction("1234567890", -5, -9) <> "" or
        substrFunction("1234567890", -5, -5) <> "" or
        substrFunction("1234567890", -5,  0) <> "" or
        substrFunction("1234567890", -5,  1) <> "" or
        substrFunction("1234567890", -5,  6) <> "" or
        substrFunction("1234567890", -5,  7) <> "1" or
        substrFunction("1234567890", -5,  8) <> "12" or
        substrFunction("1234567890", -5, 11) <> "12345" or
        substrFunction("1234567890", -5, 15) <> "123456789" or
        substrFunction("1234567890", -5, 16) <> "1234567890" or
        substrFunction("1234567890", -5, 17) <> "1234567890" or
        substrFunction("1234567890", -5, 20) <> "1234567890" or
        substrFunction("1234567890",  0, -5) <> "" or
        substrFunction("1234567890",  0, -1) <> "" or
        substrFunction("1234567890",  0,  0) <> "" or
        substrFunction("1234567890",  0,  1) <> "" or
        substrFunction("1234567890",  0,  2) <> "1" or
        substrFunction("1234567890",  0,  3) <> "12" or
        substrFunction("1234567890",  0,  6) <> "12345" or
        substrFunction("1234567890",  0, 10) <> "123456789" or
        substrFunction("1234567890",  0, 11) <> "1234567890" or
        substrFunction("1234567890",  0, 12) <> "1234567890" or
        substrFunction("1234567890",  0, 15) <> "1234567890" or
        substrFunction("1234567890",  1, -5) <> "" or
        substrFunction("1234567890",  1, -1) <> "" or
        substrFunction("1234567890",  1,  0) <> "" or
        substrFunction("1234567890",  1,  1) <> "1" or
        substrFunction("1234567890",  1,  2) <> "12" or
        substrFunction("1234567890",  1,  5) <> "12345" or
        substrFunction("1234567890",  1,  9) <> "123456789" or
        substrFunction("1234567890",  1, 10) <> "1234567890" or
        substrFunction("1234567890",  1, 11) <> "1234567890" or
        substrFunction("1234567890",  1, 15) <> "1234567890" or
        substrFunction("1234567890",  2, -5) <> "" or
        substrFunction("1234567890",  2, -1) <> "" or
        substrFunction("1234567890",  2,  0) <> "" or
        substrFunction("1234567890",  2,  1) <> "2" or
        substrFunction("1234567890",  2,  2) <> "23" or
        substrFunction("1234567890",  2,  5) <> "23456" or
        substrFunction("1234567890",  2,  8) <> "23456789" or
        substrFunction("1234567890",  2,  9) <> "234567890" or
        substrFunction("1234567890",  2, 10) <> "234567890" or
        substrFunction("1234567890",  2, 15) <> "234567890" or
        substrFunction("1234567890",  5, -5) <> "" or
        substrFunction("1234567890",  5, -1) <> "" or
        substrFunction("1234567890",  5,  0) <> "" or
        substrFunction("1234567890",  5,  1) <> "5" or
        substrFunction("1234567890",  5,  2) <> "56" or
        substrFunction("1234567890",  5,  5) <> "56789" or
        substrFunction("1234567890",  5,  6) <> "567890" or
        substrFunction("1234567890",  5,  7) <> "567890" or
        substrFunction("1234567890",  5, 15) <> "567890" or
        substrFunction("1234567890",  9, -5) <> "" or
        substrFunction("1234567890",  9, -1) <> "" or
        substrFunction("1234567890",  9,  0) <> "" or
        substrFunction("1234567890",  9,  1) <> "9" or
        substrFunction("1234567890",  9,  2) <> "90" or
        substrFunction("1234567890",  9,  3) <> "90" or
        substrFunction("1234567890",  9, 15) <> "90" or
        substrFunction("1234567890", 10, -5) <> "" or
        substrFunction("1234567890", 10, -1) <> "" or
        substrFunction("1234567890", 10,  0) <> "" or
        substrFunction("1234567890", 10,  1) <> "0" or
        substrFunction("1234567890", 10,  2) <> "0" or
        substrFunction("1234567890", 10, 15) <> "0" or
        substrFunction("1234567890", 11, -5) <> "" or
        substrFunction("1234567890", 11,  0) <> "" or
        substrFunction("1234567890", 11,  1) <> "" or
        substrFunction("1234567890", 11,  2) <> "" or
        substrFunction("1234567890", 11, 15) <> "" or
        substrFunction("1234567890", 15, -5) <> "" or
        substrFunction("1234567890", 15,  0) <> "" or
        substrFunction("1234567890", 15,  1) <> "" or
        substrFunction("1234567890", 15,  2) <> "" or
        substrFunction("1234567890", 15, 20) <> "" or
        substrFunction("", -5, intExpr(-9)) <> "" or
        substrFunction("", -5, intExpr(-5)) <> "" or
        substrFunction("", -5, intExpr( 0)) <> "" or
        substrFunction("", -5, intExpr( 1)) <> "" or
        substrFunction("", -5, intExpr( 6)) <> "" or
        substrFunction("", -5, intExpr( 7)) <> "" or
        substrFunction("", -5, intExpr( 8)) <> "" or
        substrFunction("", -5, intExpr(20)) <> "" or
        substrFunction("",  0, intExpr(-5)) <> "" or
        substrFunction("",  0, intExpr( 0)) <> "" or
        substrFunction("",  0, intExpr( 1)) <> "" or
        substrFunction("",  0, intExpr( 2)) <> "" or
        substrFunction("",  0, intExpr(15)) <> "" or
        substrFunction("",  1, intExpr(-5)) <> "" or
        substrFunction("",  1, intExpr( 0)) <> "" or
        substrFunction("",  1, intExpr( 1)) <> "" or
        substrFunction("",  1, intExpr( 2)) <> "" or
        substrFunction("",  1, intExpr(15)) <> "" or
        substrFunction("",  2, intExpr(-5)) <> "" or
        substrFunction("",  2, intExpr( 0)) <> "" or
        substrFunction("",  2, intExpr( 1)) <> "" or
        substrFunction("",  2, intExpr(15)) <> "" or
        substrFunction("", 15, intExpr(-5)) <> "" or
        substrFunction("", 15, intExpr( 0)) <> "" or
        substrFunction("", 15, intExpr( 1)) <> "" or
        substrFunction("", 15, intExpr( 2)) <> "" or
        substrFunction("", 15, intExpr(20)) <> "" or
        substrFunction("1", -5, intExpr(-9)) <> "" or
        substrFunction("1", -5, intExpr(-5)) <> "" or
        substrFunction("1", -5, intExpr( 0)) <> "" or
        substrFunction("1", -5, intExpr( 1)) <> "" or
        substrFunction("1", -5, intExpr( 6)) <> "" or
        substrFunction("1", -5, intExpr( 7)) <> "1" or
        substrFunction("1", -5, intExpr( 8)) <> "1" or
        substrFunction("1", -5, intExpr(10)) <> "1" or
        substrFunction("1",  0, intExpr(-5)) <> "" or
        substrFunction("1",  0, intExpr( 0)) <> "" or
        substrFunction("1",  0, intExpr( 1)) <> "" or
        substrFunction("1",  0, intExpr( 2)) <> "1" or
        substrFunction("1",  0, intExpr( 3)) <> "1" or
        substrFunction("1",  0, intExpr(15)) <> "1" or
        substrFunction("1",  1, intExpr(-5)) <> "" or
        substrFunction("1",  1, intExpr( 0)) <> "" or
        substrFunction("1",  1, intExpr( 1)) <> "1" or
        substrFunction("1",  1, intExpr( 2)) <> "1" or
        substrFunction("1",  1, intExpr(15)) <> "1" or
        substrFunction("1",  2, intExpr(-5)) <> "" or
        substrFunction("1",  2, intExpr( 0)) <> "" or
        substrFunction("1",  2, intExpr( 1)) <> "" or
        substrFunction("1",  2, intExpr( 2)) <> "" or
        substrFunction("1",  2, intExpr(15)) <> "" or
        substrFunction("1", 15, intExpr(-5)) <> "" or
        substrFunction("1", 15, intExpr( 0)) <> "" or
        substrFunction("1", 15, intExpr( 1)) <> "" or
        substrFunction("1", 15, intExpr( 2)) <> "" or
        substrFunction("1", 15, intExpr(20)) <> "" or
        substrFunction("1234567890", -5, intExpr(-9)) <> "" or
        substrFunction("1234567890", -5, intExpr(-5)) <> "" or
        substrFunction("1234567890", -5, intExpr( 0)) <> "" or
        substrFunction("1234567890", -5, intExpr( 1)) <> "" or
        substrFunction("1234567890", -5, intExpr( 6)) <> "" or
        substrFunction("1234567890", -5, intExpr( 7)) <> "1" or
        substrFunction("1234567890", -5, intExpr( 8)) <> "12" or
        substrFunction("1234567890", -5, intExpr(11)) <> "12345" or
        substrFunction("1234567890", -5, intExpr(15)) <> "123456789" or
        substrFunction("1234567890", -5, intExpr(16)) <> "1234567890" or
        substrFunction("1234567890", -5, intExpr(17)) <> "1234567890" or
        substrFunction("1234567890", -5, intExpr(20)) <> "1234567890" or
        substrFunction("1234567890",  0, intExpr(-5)) <> "" or
        substrFunction("1234567890",  0, intExpr(-1)) <> "" or
        substrFunction("1234567890",  0, intExpr( 0)) <> "" or
        substrFunction("1234567890",  0, intExpr( 1)) <> "" or
        substrFunction("1234567890",  0, intExpr( 2)) <> "1" or
        substrFunction("1234567890",  0, intExpr( 3)) <> "12" or
        substrFunction("1234567890",  0, intExpr( 6)) <> "12345" or
        substrFunction("1234567890",  0, intExpr(10)) <> "123456789" or
        substrFunction("1234567890",  0, intExpr(11)) <> "1234567890" or
        substrFunction("1234567890",  0, intExpr(12)) <> "1234567890" or
        substrFunction("1234567890",  0, intExpr(15)) <> "1234567890" or
        substrFunction("1234567890",  1, intExpr(-5)) <> "" or
        substrFunction("1234567890",  1, intExpr(-1)) <> "" or
        substrFunction("1234567890",  1, intExpr( 0)) <> "" or
        substrFunction("1234567890",  1, intExpr( 1)) <> "1" or
        substrFunction("1234567890",  1, intExpr( 2)) <> "12" or
        substrFunction("1234567890",  1, intExpr( 5)) <> "12345" or
        substrFunction("1234567890",  1, intExpr( 9)) <> "123456789" or
        substrFunction("1234567890",  1, intExpr(10)) <> "1234567890" or
        substrFunction("1234567890",  1, intExpr(11)) <> "1234567890" or
        substrFunction("1234567890",  1, intExpr(15)) <> "1234567890" or
        substrFunction("1234567890",  2, intExpr(-5)) <> "" or
        substrFunction("1234567890",  2, intExpr(-1)) <> "" or
        substrFunction("1234567890",  2, intExpr( 0)) <> "" or
        substrFunction("1234567890",  2, intExpr( 1)) <> "2" or
        substrFunction("1234567890",  2, intExpr( 2)) <> "23" or
        substrFunction("1234567890",  2, intExpr( 5)) <> "23456" or
        substrFunction("1234567890",  2, intExpr( 8)) <> "23456789" or
        substrFunction("1234567890",  2, intExpr( 9)) <> "234567890" or
        substrFunction("1234567890",  2, intExpr(10)) <> "234567890" or
        substrFunction("1234567890",  2, intExpr(15)) <> "234567890" or
        substrFunction("1234567890",  5, intExpr(-5)) <> "" or
        substrFunction("1234567890",  5, intExpr(-1)) <> "" or
        substrFunction("1234567890",  5, intExpr( 0)) <> "" or
        substrFunction("1234567890",  5, intExpr( 1)) <> "5" or
        substrFunction("1234567890",  5, intExpr( 2)) <> "56" or
        substrFunction("1234567890",  5, intExpr( 5)) <> "56789" or
        substrFunction("1234567890",  5, intExpr( 6)) <> "567890" or
        substrFunction("1234567890",  5, intExpr( 7)) <> "567890" or
        substrFunction("1234567890",  5, intExpr(15)) <> "567890" or
        substrFunction("1234567890",  9, intExpr(-5)) <> "" or
        substrFunction("1234567890",  9, intExpr(-1)) <> "" or
        substrFunction("1234567890",  9, intExpr( 0)) <> "" or
        substrFunction("1234567890",  9, intExpr( 1)) <> "9" or
        substrFunction("1234567890",  9, intExpr( 2)) <> "90" or
        substrFunction("1234567890",  9, intExpr( 3)) <> "90" or
        substrFunction("1234567890",  9, intExpr(15)) <> "90" or
        substrFunction("1234567890", 10, intExpr(-5)) <> "" or
        substrFunction("1234567890", 10, intExpr(-1)) <> "" or
        substrFunction("1234567890", 10, intExpr( 0)) <> "" or
        substrFunction("1234567890", 10, intExpr( 1)) <> "0" or
        substrFunction("1234567890", 10, intExpr( 2)) <> "0" or
        substrFunction("1234567890", 10, intExpr(15)) <> "0" or
        substrFunction("1234567890", 11, intExpr(-5)) <> "" or
        substrFunction("1234567890", 11, intExpr( 0)) <> "" or
        substrFunction("1234567890", 11, intExpr( 1)) <> "" or
        substrFunction("1234567890", 11, intExpr( 2)) <> "" or
        substrFunction("1234567890", 11, intExpr(15)) <> "" or
        substrFunction("1234567890", 15, intExpr(-5)) <> "" or
        substrFunction("1234567890", 15, intExpr( 0)) <> "" or
        substrFunction("1234567890", 15, intExpr( 1)) <> "" or
        substrFunction("1234567890", 15, intExpr( 2)) <> "" or
        substrFunction("1234567890", 15, intExpr(20)) <> "" or
        substrFunction("", intExpr(-5), -9) <> "" or
        substrFunction("", intExpr(-5), -5) <> "" or
        substrFunction("", intExpr(-5),  0) <> "" or
        substrFunction("", intExpr(-5),  1) <> "" or
        substrFunction("", intExpr(-5),  6) <> "" or
        substrFunction("", intExpr(-5),  7) <> "" or
        substrFunction("", intExpr(-5),  8) <> "" or
        substrFunction("", intExpr(-5), 20) <> "" or
        substrFunction("", intExpr( 0), -5) <> "" or
        substrFunction("", intExpr( 0),  0) <> "" or
        substrFunction("", intExpr( 0),  1) <> "" or
        substrFunction("", intExpr( 0),  2) <> "" or
        substrFunction("", intExpr( 0), 15) <> "" or
        substrFunction("", intExpr( 1), -5) <> "" or
        substrFunction("", intExpr( 1),  0) <> "" or
        substrFunction("", intExpr( 1),  1) <> "" or
        substrFunction("", intExpr( 1),  2) <> "" or
        substrFunction("", intExpr( 1), 15) <> "" or
        substrFunction("", intExpr( 2), -5) <> "" or
        substrFunction("", intExpr( 2),  0) <> "" or
        substrFunction("", intExpr( 2),  1) <> "" or
        substrFunction("", intExpr( 2), 15) <> "" or
        substrFunction("", intExpr(15), -5) <> "" or
        substrFunction("", intExpr(15),  0) <> "" or
        substrFunction("", intExpr(15),  1) <> "" or
        substrFunction("", intExpr(15),  2) <> "" or
        substrFunction("", intExpr(15), 20) <> "" or
        substrFunction("1", intExpr(-5), -9) <> "" or
        substrFunction("1", intExpr(-5), -5) <> "" or
        substrFunction("1", intExpr(-5),  0) <> "" or
        substrFunction("1", intExpr(-5),  1) <> "" or
        substrFunction("1", intExpr(-5),  6) <> "" or
        substrFunction("1", intExpr(-5),  7) <> "1" or
        substrFunction("1", intExpr(-5),  8) <> "1" or
        substrFunction("1", intExpr(-5), 10) <> "1" or
        substrFunction("1", intExpr( 0), -5) <> "" or
        substrFunction("1", intExpr( 0),  0) <> "" or
        substrFunction("1", intExpr( 0),  1) <> "" or
        substrFunction("1", intExpr( 0),  2) <> "1" or
        substrFunction("1", intExpr( 0),  3) <> "1" or
        substrFunction("1", intExpr( 0), 15) <> "1" or
        substrFunction("1", intExpr( 1), -5) <> "" or
        substrFunction("1", intExpr( 1),  0) <> "" or
        substrFunction("1", intExpr( 1),  1) <> "1" or
        substrFunction("1", intExpr( 1),  2) <> "1" or
        substrFunction("1", intExpr( 1), 15) <> "1" or
        substrFunction("1", intExpr( 2), -5) <> "" or
        substrFunction("1", intExpr( 2),  0) <> "" or
        substrFunction("1", intExpr( 2),  1) <> "" or
        substrFunction("1", intExpr( 2),  2) <> "" or
        substrFunction("1", intExpr( 2), 15) <> "" or
        substrFunction("1", intExpr(15), -5) <> "" or
        substrFunction("1", intExpr(15),  0) <> "" or
        substrFunction("1", intExpr(15),  1) <> "" or
        substrFunction("1", intExpr(15),  2) <> "" or
        substrFunction("1", intExpr(15), 20) <> "" or
        substrFunction("1234567890", intExpr(-5), -9) <> "" or
        substrFunction("1234567890", intExpr(-5), -5) <> "" or
        substrFunction("1234567890", intExpr(-5),  0) <> "" or
        substrFunction("1234567890", intExpr(-5),  1) <> "" or
        substrFunction("1234567890", intExpr(-5),  6) <> "" or
        substrFunction("1234567890", intExpr(-5),  7) <> "1" or
        substrFunction("1234567890", intExpr(-5),  8) <> "12" or
        substrFunction("1234567890", intExpr(-5), 11) <> "12345" or
        substrFunction("1234567890", intExpr(-5), 15) <> "123456789" or
        substrFunction("1234567890", intExpr(-5), 16) <> "1234567890" or
        substrFunction("1234567890", intExpr(-5), 17) <> "1234567890" or
        substrFunction("1234567890", intExpr(-5), 20) <> "1234567890" or
        substrFunction("1234567890", intExpr( 0), -5) <> "" or
        substrFunction("1234567890", intExpr( 0), -1) <> "" or
        substrFunction("1234567890", intExpr( 0),  0) <> "" or
        substrFunction("1234567890", intExpr( 0),  1) <> "" or
        substrFunction("1234567890", intExpr( 0),  2) <> "1" or
        substrFunction("1234567890", intExpr( 0),  3) <> "12" or
        substrFunction("1234567890", intExpr( 0),  6) <> "12345" or
        substrFunction("1234567890", intExpr( 0), 10) <> "123456789" or
        substrFunction("1234567890", intExpr( 0), 11) <> "1234567890" or
        substrFunction("1234567890", intExpr( 0), 12) <> "1234567890" or
        substrFunction("1234567890", intExpr( 0), 15) <> "1234567890" or
        substrFunction("1234567890", intExpr( 1), -5) <> "" or
        substrFunction("1234567890", intExpr( 1), -1) <> "" or
        substrFunction("1234567890", intExpr( 1),  0) <> "" or
        substrFunction("1234567890", intExpr( 1),  1) <> "1" or
        substrFunction("1234567890", intExpr( 1),  2) <> "12" or
        substrFunction("1234567890", intExpr( 1),  5) <> "12345" or
        substrFunction("1234567890", intExpr( 1),  9) <> "123456789" or
        substrFunction("1234567890", intExpr( 1), 10) <> "1234567890" or
        substrFunction("1234567890", intExpr( 1), 11) <> "1234567890" or
        substrFunction("1234567890", intExpr( 1), 15) <> "1234567890" or
        substrFunction("1234567890", intExpr( 2), -5) <> "" or
        substrFunction("1234567890", intExpr( 2), -1) <> "" or
        substrFunction("1234567890", intExpr( 2),  0) <> "" or
        substrFunction("1234567890", intExpr( 2),  1) <> "2" or
        substrFunction("1234567890", intExpr( 2),  2) <> "23" or
        substrFunction("1234567890", intExpr( 2),  5) <> "23456" or
        substrFunction("1234567890", intExpr( 2),  8) <> "23456789" or
        substrFunction("1234567890", intExpr( 2),  9) <> "234567890" or
        substrFunction("1234567890", intExpr( 2), 10) <> "234567890" or
        substrFunction("1234567890", intExpr( 2), 15) <> "234567890" or
        substrFunction("1234567890", intExpr( 5), -5) <> "" or
        substrFunction("1234567890", intExpr( 5), -1) <> "" or
        substrFunction("1234567890", intExpr( 5),  0) <> "" or
        substrFunction("1234567890", intExpr( 5),  1) <> "5" or
        substrFunction("1234567890", intExpr( 5),  2) <> "56" or
        substrFunction("1234567890", intExpr( 5),  5) <> "56789" or
        substrFunction("1234567890", intExpr( 5),  6) <> "567890" or
        substrFunction("1234567890", intExpr( 5),  7) <> "567890" or
        substrFunction("1234567890", intExpr( 5), 15) <> "567890" or
        substrFunction("1234567890", intExpr( 9), -5) <> "" or
        substrFunction("1234567890", intExpr( 9), -1) <> "" or
        substrFunction("1234567890", intExpr( 9),  0) <> "" or
        substrFunction("1234567890", intExpr( 9),  1) <> "9" or
        substrFunction("1234567890", intExpr( 9),  2) <> "90" or
        substrFunction("1234567890", intExpr( 9),  3) <> "90" or
        substrFunction("1234567890", intExpr( 9), 15) <> "90" or
        substrFunction("1234567890", intExpr(10), -5) <> "" or
        substrFunction("1234567890", intExpr(10), -1) <> "" or
        substrFunction("1234567890", intExpr(10),  0) <> "" or
        substrFunction("1234567890", intExpr(10),  1) <> "0" or
        substrFunction("1234567890", intExpr(10),  2) <> "0" or
        substrFunction("1234567890", intExpr(10), 15) <> "0" or
        substrFunction("1234567890", intExpr(11), -5) <> "" or
        substrFunction("1234567890", intExpr(11),  0) <> "" or
        substrFunction("1234567890", intExpr(11),  1) <> "" or
        substrFunction("1234567890", intExpr(11),  2) <> "" or
        substrFunction("1234567890", intExpr(11), 15) <> "" or
        substrFunction("1234567890", intExpr(15), -5) <> "" or
        substrFunction("1234567890", intExpr(15),  0) <> "" or
        substrFunction("1234567890", intExpr(15),  1) <> "" or
        substrFunction("1234567890", intExpr(15),  2) <> "" or
        substrFunction("1234567890", intExpr(15), 20) <> "" or
        substrFunction("", intExpr(-5), intExpr(-9)) <> "" or
        substrFunction("", intExpr(-5), intExpr(-5)) <> "" or
        substrFunction("", intExpr(-5), intExpr( 0)) <> "" or
        substrFunction("", intExpr(-5), intExpr( 1)) <> "" or
        substrFunction("", intExpr(-5), intExpr( 6)) <> "" or
        substrFunction("", intExpr(-5), intExpr( 7)) <> "" or
        substrFunction("", intExpr(-5), intExpr( 8)) <> "" or
        substrFunction("", intExpr(-5), intExpr(20)) <> "" or
        substrFunction("", intExpr( 0), intExpr(-5)) <> "" or
        substrFunction("", intExpr( 0), intExpr( 0)) <> "" or
        substrFunction("", intExpr( 0), intExpr( 1)) <> "" or
        substrFunction("", intExpr( 0), intExpr( 2)) <> "" or
        substrFunction("", intExpr( 0), intExpr(15)) <> "" or
        substrFunction("", intExpr( 1), intExpr(-5)) <> "" or
        substrFunction("", intExpr( 1), intExpr( 0)) <> "" or
        substrFunction("", intExpr( 1), intExpr( 1)) <> "" or
        substrFunction("", intExpr( 1), intExpr( 2)) <> "" or
        substrFunction("", intExpr( 1), intExpr(15)) <> "" or
        substrFunction("", intExpr( 2), intExpr(-5)) <> "" or
        substrFunction("", intExpr( 2), intExpr( 0)) <> "" or
        substrFunction("", intExpr( 2), intExpr( 1)) <> "" or
        substrFunction("", intExpr( 2), intExpr(15)) <> "" or
        substrFunction("", intExpr(15), intExpr(-5)) <> "" or
        substrFunction("", intExpr(15), intExpr( 0)) <> "" or
        substrFunction("", intExpr(15), intExpr( 1)) <> "" or
        substrFunction("", intExpr(15), intExpr( 2)) <> "" or
        substrFunction("", intExpr(15), intExpr(20)) <> "" or
        substrFunction("1", intExpr(-5), intExpr(-9)) <> "" or
        substrFunction("1", intExpr(-5), intExpr(-5)) <> "" or
        substrFunction("1", intExpr(-5), intExpr( 0)) <> "" or
        substrFunction("1", intExpr(-5), intExpr( 1)) <> "" or
        substrFunction("1", intExpr(-5), intExpr( 6)) <> "" or
        substrFunction("1", intExpr(-5), intExpr( 7)) <> "1" or
        substrFunction("1", intExpr(-5), intExpr( 8)) <> "1" or
        substrFunction("1", intExpr(-5), intExpr(10)) <> "1" or
        substrFunction("1", intExpr( 0), intExpr(-5)) <> "" or
        substrFunction("1", intExpr( 0), intExpr( 0)) <> "" or
        substrFunction("1", intExpr( 0), intExpr( 1)) <> "" or
        substrFunction("1", intExpr( 0), intExpr( 2)) <> "1" or
        substrFunction("1", intExpr( 0), intExpr( 3)) <> "1" or
        substrFunction("1", intExpr( 0), intExpr(15)) <> "1" or
        substrFunction("1", intExpr( 1), intExpr(-5)) <> "" or
        substrFunction("1", intExpr( 1), intExpr( 0)) <> "" or
        substrFunction("1", intExpr( 1), intExpr( 1)) <> "1" or
        substrFunction("1", intExpr( 1), intExpr( 2)) <> "1" or
        substrFunction("1", intExpr( 1), intExpr(15)) <> "1" or
        substrFunction("1", intExpr( 2), intExpr(-5)) <> "" or
        substrFunction("1", intExpr( 5), intExpr( 0)) <> "" or
        substrFunction("1", intExpr( 2), intExpr( 1)) <> "" or
        substrFunction("1", intExpr( 2), intExpr( 2)) <> "" or
        substrFunction("1", intExpr( 2), intExpr(15)) <> "" or
        substrFunction("1", intExpr(15), intExpr(-5)) <> "" or
        substrFunction("1", intExpr(15), intExpr( 0)) <> "" or
        substrFunction("1", intExpr(15), intExpr( 1)) <> "" or
        substrFunction("1", intExpr(15), intExpr( 2)) <> "" or
        substrFunction("1", intExpr(15), intExpr(20)) <> "" or
        substrFunction("1234567890", intExpr(-5), intExpr(-9)) <> "" or
        substrFunction("1234567890", intExpr(-5), intExpr(-5)) <> "" or
        substrFunction("1234567890", intExpr(-5), intExpr( 0)) <> "" or
        substrFunction("1234567890", intExpr(-5), intExpr( 1)) <> "" or
        substrFunction("1234567890", intExpr(-5), intExpr( 6)) <> "" or
        substrFunction("1234567890", intExpr(-5), intExpr( 7)) <> "1" or
        substrFunction("1234567890", intExpr(-5), intExpr( 8)) <> "12" or
        substrFunction("1234567890", intExpr(-5), intExpr(11)) <> "12345" or
        substrFunction("1234567890", intExpr(-5), intExpr(15)) <> "123456789" or
        substrFunction("1234567890", intExpr(-5), intExpr(16)) <> "1234567890" or
        substrFunction("1234567890", intExpr(-5), intExpr(17)) <> "1234567890" or
        substrFunction("1234567890", intExpr(-5), intExpr(20)) <> "1234567890" or
        substrFunction("1234567890", intExpr( 0), intExpr(-5)) <> "" or
        substrFunction("1234567890", intExpr( 0), intExpr(-1)) <> "" or
        substrFunction("1234567890", intExpr( 0), intExpr( 0)) <> "" or
        substrFunction("1234567890", intExpr( 0), intExpr( 1)) <> "" or
        substrFunction("1234567890", intExpr( 0), intExpr( 2)) <> "1" or
        substrFunction("1234567890", intExpr( 0), intExpr( 3)) <> "12" or
        substrFunction("1234567890", intExpr( 0), intExpr( 6)) <> "12345" or
        substrFunction("1234567890", intExpr( 0), intExpr(10)) <> "123456789" or
        substrFunction("1234567890", intExpr( 0), intExpr(11)) <> "1234567890" or
        substrFunction("1234567890", intExpr( 0), intExpr(12)) <> "1234567890" or
        substrFunction("1234567890", intExpr( 0), intExpr(15)) <> "1234567890" or
        substrFunction("1234567890", intExpr( 1), intExpr(-5)) <> "" or
        substrFunction("1234567890", intExpr( 1), intExpr(-1)) <> "" or
        substrFunction("1234567890", intExpr( 1), intExpr( 0)) <> "" or
        substrFunction("1234567890", intExpr( 1), intExpr( 1)) <> "1" or
        substrFunction("1234567890", intExpr( 1), intExpr( 2)) <> "12" or
        substrFunction("1234567890", intExpr( 1), intExpr( 5)) <> "12345" or
        substrFunction("1234567890", intExpr( 1), intExpr( 9)) <> "123456789" or
        substrFunction("1234567890", intExpr( 1), intExpr(10)) <> "1234567890" or
        substrFunction("1234567890", intExpr( 1), intExpr(11)) <> "1234567890" or
        substrFunction("1234567890", intExpr( 1), intExpr(15)) <> "1234567890" or
        substrFunction("1234567890", intExpr( 2), intExpr(-5)) <> "" or
        substrFunction("1234567890", intExpr( 2), intExpr(-1)) <> "" or
        substrFunction("1234567890", intExpr( 2), intExpr( 0)) <> "" or
        substrFunction("1234567890", intExpr( 2), intExpr( 1)) <> "2" or
        substrFunction("1234567890", intExpr( 2), intExpr( 2)) <> "23" or
        substrFunction("1234567890", intExpr( 2), intExpr( 5)) <> "23456" or
        substrFunction("1234567890", intExpr( 2), intExpr( 8)) <> "23456789" or
        substrFunction("1234567890", intExpr( 2), intExpr( 9)) <> "234567890" or
        substrFunction("1234567890", intExpr( 2), intExpr(10)) <> "234567890" or
        substrFunction("1234567890", intExpr( 2), intExpr(15)) <> "234567890" or
        substrFunction("1234567890", intExpr( 5), intExpr(-5)) <> "" or
        substrFunction("1234567890", intExpr( 5), intExpr(-1)) <> "" or
        substrFunction("1234567890", intExpr( 5), intExpr( 0)) <> "" or
        substrFunction("1234567890", intExpr( 5), intExpr( 1)) <> "5" or
        substrFunction("1234567890", intExpr( 5), intExpr( 2)) <> "56" or
        substrFunction("1234567890", intExpr( 5), intExpr( 5)) <> "56789" or
        substrFunction("1234567890", intExpr( 5), intExpr( 6)) <> "567890" or
        substrFunction("1234567890", intExpr( 5), intExpr( 7)) <> "567890" or
        substrFunction("1234567890", intExpr( 5), intExpr(15)) <> "567890" or
        substrFunction("1234567890", intExpr( 9), intExpr(-5)) <> "" or
        substrFunction("1234567890", intExpr( 9), intExpr(-1)) <> "" or
        substrFunction("1234567890", intExpr( 9), intExpr( 0)) <> "" or
        substrFunction("1234567890", intExpr( 9), intExpr( 1)) <> "9" or
        substrFunction("1234567890", intExpr( 9), intExpr( 2)) <> "90" or
        substrFunction("1234567890", intExpr( 9), intExpr( 3)) <> "90" or
        substrFunction("1234567890", intExpr( 9), intExpr(15)) <> "90" or
        substrFunction("1234567890", intExpr(10), intExpr(-5)) <> "" or
        substrFunction("1234567890", intExpr(10), intExpr(-1)) <> "" or
        substrFunction("1234567890", intExpr(10), intExpr( 0)) <> "" or
        substrFunction("1234567890", intExpr(10), intExpr( 1)) <> "0" or
        substrFunction("1234567890", intExpr(10), intExpr( 2)) <> "0" or
        substrFunction("1234567890", intExpr(10), intExpr(15)) <> "0" or
        substrFunction("1234567890", intExpr(11), intExpr(-5)) <> "" or
        substrFunction("1234567890", intExpr(11), intExpr( 0)) <> "" or
        substrFunction("1234567890", intExpr(11), intExpr( 1)) <> "" or
        substrFunction("1234567890", intExpr(11), intExpr( 2)) <> "" or
        substrFunction("1234567890", intExpr(11), intExpr(15)) <> "" or
        substrFunction("1234567890", intExpr(15), intExpr(-5)) <> "" or
        substrFunction("1234567890", intExpr(15), intExpr( 0)) <> "" or
        substrFunction("1234567890", intExpr(15), intExpr( 1)) <> "" or
        substrFunction("1234567890", intExpr(15), intExpr( 2)) <> "" or
        substrFunction("1234567890", intExpr(15), intExpr(20)) <> "" then
      writeln(" ***** STRING [ START len LENGTH) via a function does not work correct. (1)");
      okay := FALSE;
    end if;

    if  substrFunction(striExpr(""), -5, -9) <> "" or
        substrFunction(striExpr(""), -5, -5) <> "" or
        substrFunction(striExpr(""), -5,  0) <> "" or
        substrFunction(striExpr(""), -5,  1) <> "" or
        substrFunction(striExpr(""), -5,  6) <> "" or
        substrFunction(striExpr(""), -5,  7) <> "" or
        substrFunction(striExpr(""), -5,  8) <> "" or
        substrFunction(striExpr(""), -5, 20) <> "" or
        substrFunction(striExpr(""),  0, -5) <> "" or
        substrFunction(striExpr(""),  0,  0) <> "" or
        substrFunction(striExpr(""),  0,  1) <> "" or
        substrFunction(striExpr(""),  0,  2) <> "" or
        substrFunction(striExpr(""),  0, 15) <> "" or
        substrFunction(striExpr(""),  1, -5) <> "" or
        substrFunction(striExpr(""),  1,  0) <> "" or
        substrFunction(striExpr(""),  1,  1) <> "" or
        substrFunction(striExpr(""),  1,  2) <> "" or
        substrFunction(striExpr(""),  1, 15) <> "" or
        substrFunction(striExpr(""),  2, -5) <> "" or
        substrFunction(striExpr(""),  2,  0) <> "" or
        substrFunction(striExpr(""),  2,  1) <> "" or
        substrFunction(striExpr(""),  2, 15) <> "" or
        substrFunction(striExpr(""), 15, -5) <> "" or
        substrFunction(striExpr(""), 15,  0) <> "" or
        substrFunction(striExpr(""), 15,  1) <> "" or
        substrFunction(striExpr(""), 15,  2) <> "" or
        substrFunction(striExpr(""), 15, 20) <> "" or
        substrFunction(striExpr("1"), -5, -9) <> "" or
        substrFunction(striExpr("1"), -5, -5) <> "" or
        substrFunction(striExpr("1"), -5,  0) <> "" or
        substrFunction(striExpr("1"), -5,  1) <> "" or
        substrFunction(striExpr("1"), -5,  6) <> "" or
        substrFunction(striExpr("1"), -5,  7) <> "1" or
        substrFunction(striExpr("1"), -5,  8) <> "1" or
        substrFunction(striExpr("1"), -5, 10) <> "1" or
        substrFunction(striExpr("1"),  0, -5) <> "" or
        substrFunction(striExpr("1"),  0,  0) <> "" or
        substrFunction(striExpr("1"),  0,  1) <> "" or
        substrFunction(striExpr("1"),  0,  2) <> "1" or
        substrFunction(striExpr("1"),  0,  3) <> "1" or
        substrFunction(striExpr("1"),  0, 15) <> "1" or
        substrFunction(striExpr("1"),  1, -5) <> "" or
        substrFunction(striExpr("1"),  1,  0) <> "" or
        substrFunction(striExpr("1"),  1,  1) <> "1" or
        substrFunction(striExpr("1"),  1,  2) <> "1" or
        substrFunction(striExpr("1"),  1, 15) <> "1" or
        substrFunction(striExpr("1"),  2, -5) <> "" or
        substrFunction(striExpr("1"),  2,  0) <> "" or
        substrFunction(striExpr("1"),  2,  1) <> "" or
        substrFunction(striExpr("1"),  2,  2) <> "" or
        substrFunction(striExpr("1"),  2, 15) <> "" or
        substrFunction(striExpr("1"), 15, -5) <> "" or
        substrFunction(striExpr("1"), 15,  0) <> "" or
        substrFunction(striExpr("1"), 15,  1) <> "" or
        substrFunction(striExpr("1"), 15,  2) <> "" or
        substrFunction(striExpr("1"), 15, 20) <> "" or
        substrFunction(striExpr("1234567890"), -5, -9) <> "" or
        substrFunction(striExpr("1234567890"), -5, -5) <> "" or
        substrFunction(striExpr("1234567890"), -5,  0) <> "" or
        substrFunction(striExpr("1234567890"), -5,  1) <> "" or
        substrFunction(striExpr("1234567890"), -5,  6) <> "" or
        substrFunction(striExpr("1234567890"), -5,  7) <> "1" or
        substrFunction(striExpr("1234567890"), -5,  8) <> "12" or
        substrFunction(striExpr("1234567890"), -5, 11) <> "12345" or
        substrFunction(striExpr("1234567890"), -5, 15) <> "123456789" or
        substrFunction(striExpr("1234567890"), -5, 16) <> "1234567890" or
        substrFunction(striExpr("1234567890"), -5, 17) <> "1234567890" or
        substrFunction(striExpr("1234567890"), -5, 20) <> "1234567890" or
        substrFunction(striExpr("1234567890"),  0, -5) <> "" or
        substrFunction(striExpr("1234567890"),  0, -1) <> "" or
        substrFunction(striExpr("1234567890"),  0,  0) <> "" or
        substrFunction(striExpr("1234567890"),  0,  1) <> "" or
        substrFunction(striExpr("1234567890"),  0,  2) <> "1" or
        substrFunction(striExpr("1234567890"),  0,  3) <> "12" or
        substrFunction(striExpr("1234567890"),  0,  6) <> "12345" or
        substrFunction(striExpr("1234567890"),  0, 10) <> "123456789" or
        substrFunction(striExpr("1234567890"),  0, 11) <> "1234567890" or
        substrFunction(striExpr("1234567890"),  0, 12) <> "1234567890" or
        substrFunction(striExpr("1234567890"),  0, 15) <> "1234567890" or
        substrFunction(striExpr("1234567890"),  1, -5) <> "" or
        substrFunction(striExpr("1234567890"),  1, -1) <> "" or
        substrFunction(striExpr("1234567890"),  1,  0) <> "" or
        substrFunction(striExpr("1234567890"),  1,  1) <> "1" or
        substrFunction(striExpr("1234567890"),  1,  2) <> "12" or
        substrFunction(striExpr("1234567890"),  1,  5) <> "12345" or
        substrFunction(striExpr("1234567890"),  1,  9) <> "123456789" or
        substrFunction(striExpr("1234567890"),  1, 10) <> "1234567890" or
        substrFunction(striExpr("1234567890"),  1, 11) <> "1234567890" or
        substrFunction(striExpr("1234567890"),  1, 15) <> "1234567890" or
        substrFunction(striExpr("1234567890"),  2, -5) <> "" or
        substrFunction(striExpr("1234567890"),  2, -1) <> "" or
        substrFunction(striExpr("1234567890"),  2,  0) <> "" or
        substrFunction(striExpr("1234567890"),  2,  1) <> "2" or
        substrFunction(striExpr("1234567890"),  2,  2) <> "23" or
        substrFunction(striExpr("1234567890"),  2,  5) <> "23456" or
        substrFunction(striExpr("1234567890"),  2,  8) <> "23456789" or
        substrFunction(striExpr("1234567890"),  2,  9) <> "234567890" or
        substrFunction(striExpr("1234567890"),  2, 10) <> "234567890" or
        substrFunction(striExpr("1234567890"),  2, 15) <> "234567890" or
        substrFunction(striExpr("1234567890"),  5, -5) <> "" or
        substrFunction(striExpr("1234567890"),  5, -1) <> "" or
        substrFunction(striExpr("1234567890"),  5,  0) <> "" or
        substrFunction(striExpr("1234567890"),  5,  1) <> "5" or
        substrFunction(striExpr("1234567890"),  5,  2) <> "56" or
        substrFunction(striExpr("1234567890"),  5,  5) <> "56789" or
        substrFunction(striExpr("1234567890"),  5,  6) <> "567890" or
        substrFunction(striExpr("1234567890"),  5,  7) <> "567890" or
        substrFunction(striExpr("1234567890"),  5, 15) <> "567890" or
        substrFunction(striExpr("1234567890"),  9, -5) <> "" or
        substrFunction(striExpr("1234567890"),  9, -1) <> "" or
        substrFunction(striExpr("1234567890"),  9,  0) <> "" or
        substrFunction(striExpr("1234567890"),  9,  1) <> "9" or
        substrFunction(striExpr("1234567890"),  9,  2) <> "90" or
        substrFunction(striExpr("1234567890"),  9,  3) <> "90" or
        substrFunction(striExpr("1234567890"),  9, 15) <> "90" or
        substrFunction(striExpr("1234567890"), 10, -5) <> "" or
        substrFunction(striExpr("1234567890"), 10, -1) <> "" or
        substrFunction(striExpr("1234567890"), 10,  0) <> "" or
        substrFunction(striExpr("1234567890"), 10,  1) <> "0" or
        substrFunction(striExpr("1234567890"), 10,  2) <> "0" or
        substrFunction(striExpr("1234567890"), 10, 15) <> "0" or
        substrFunction(striExpr("1234567890"), 11, -5) <> "" or
        substrFunction(striExpr("1234567890"), 11,  0) <> "" or
        substrFunction(striExpr("1234567890"), 11,  1) <> "" or
        substrFunction(striExpr("1234567890"), 11,  2) <> "" or
        substrFunction(striExpr("1234567890"), 11, 15) <> "" or
        substrFunction(striExpr("1234567890"), 15, -5) <> "" or
        substrFunction(striExpr("1234567890"), 15,  0) <> "" or
        substrFunction(striExpr("1234567890"), 15,  1) <> "" or
        substrFunction(striExpr("1234567890"), 15,  2) <> "" or
        substrFunction(striExpr("1234567890"), 15, 20) <> "" or
        substrFunction(striExpr(""), -5, intExpr(-9)) <> "" or
        substrFunction(striExpr(""), -5, intExpr(-5)) <> "" or
        substrFunction(striExpr(""), -5, intExpr( 0)) <> "" or
        substrFunction(striExpr(""), -5, intExpr( 1)) <> "" or
        substrFunction(striExpr(""), -5, intExpr( 6)) <> "" or
        substrFunction(striExpr(""), -5, intExpr( 7)) <> "" or
        substrFunction(striExpr(""), -5, intExpr( 8)) <> "" or
        substrFunction(striExpr(""), -5, intExpr(20)) <> "" or
        substrFunction(striExpr(""),  0, intExpr(-5)) <> "" or
        substrFunction(striExpr(""),  0, intExpr( 0)) <> "" or
        substrFunction(striExpr(""),  0, intExpr( 1)) <> "" or
        substrFunction(striExpr(""),  0, intExpr( 2)) <> "" or
        substrFunction(striExpr(""),  0, intExpr(15)) <> "" or
        substrFunction(striExpr(""),  1, intExpr(-5)) <> "" or
        substrFunction(striExpr(""),  1, intExpr( 0)) <> "" or
        substrFunction(striExpr(""),  1, intExpr( 1)) <> "" or
        substrFunction(striExpr(""),  1, intExpr( 2)) <> "" or
        substrFunction(striExpr(""),  1, intExpr(15)) <> "" or
        substrFunction(striExpr(""),  2, intExpr(-5)) <> "" or
        substrFunction(striExpr(""),  2, intExpr( 0)) <> "" or
        substrFunction(striExpr(""),  2, intExpr( 1)) <> "" or
        substrFunction(striExpr(""),  2, intExpr(15)) <> "" or
        substrFunction(striExpr(""), 15, intExpr(-5)) <> "" or
        substrFunction(striExpr(""), 15, intExpr( 0)) <> "" or
        substrFunction(striExpr(""), 15, intExpr( 1)) <> "" or
        substrFunction(striExpr(""), 15, intExpr( 2)) <> "" or
        substrFunction(striExpr(""), 15, intExpr(20)) <> "" or
        substrFunction(striExpr("1"), -5, intExpr(-9)) <> "" or
        substrFunction(striExpr("1"), -5, intExpr(-5)) <> "" or
        substrFunction(striExpr("1"), -5, intExpr( 0)) <> "" or
        substrFunction(striExpr("1"), -5, intExpr( 1)) <> "" or
        substrFunction(striExpr("1"), -5, intExpr( 6)) <> "" or
        substrFunction(striExpr("1"), -5, intExpr( 7)) <> "1" or
        substrFunction(striExpr("1"), -5, intExpr( 8)) <> "1" or
        substrFunction(striExpr("1"), -5, intExpr(10)) <> "1" or
        substrFunction(striExpr("1"),  0, intExpr(-5)) <> "" or
        substrFunction(striExpr("1"),  0, intExpr( 0)) <> "" or
        substrFunction(striExpr("1"),  0, intExpr( 1)) <> "" or
        substrFunction(striExpr("1"),  0, intExpr( 2)) <> "1" or
        substrFunction(striExpr("1"),  0, intExpr( 3)) <> "1" or
        substrFunction(striExpr("1"),  0, intExpr(15)) <> "1" or
        substrFunction(striExpr("1"),  1, intExpr(-5)) <> "" or
        substrFunction(striExpr("1"),  1, intExpr( 0)) <> "" or
        substrFunction(striExpr("1"),  1, intExpr( 1)) <> "1" or
        substrFunction(striExpr("1"),  1, intExpr( 2)) <> "1" or
        substrFunction(striExpr("1"),  1, intExpr(15)) <> "1" or
        substrFunction(striExpr("1"),  2, intExpr(-5)) <> "" or
        substrFunction(striExpr("1"),  2, intExpr( 0)) <> "" or
        substrFunction(striExpr("1"),  2, intExpr( 1)) <> "" or
        substrFunction(striExpr("1"),  2, intExpr( 2)) <> "" or
        substrFunction(striExpr("1"),  2, intExpr(15)) <> "" or
        substrFunction(striExpr("1"), 15, intExpr(-5)) <> "" or
        substrFunction(striExpr("1"), 15, intExpr( 0)) <> "" or
        substrFunction(striExpr("1"), 15, intExpr( 1)) <> "" or
        substrFunction(striExpr("1"), 15, intExpr( 2)) <> "" or
        substrFunction(striExpr("1"), 15, intExpr(20)) <> "" or
        substrFunction(striExpr("1234567890"), -5, intExpr(-9)) <> "" or
        substrFunction(striExpr("1234567890"), -5, intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"), -5, intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"), -5, intExpr( 1)) <> "" or
        substrFunction(striExpr("1234567890"), -5, intExpr( 6)) <> "" or
        substrFunction(striExpr("1234567890"), -5, intExpr( 7)) <> "1" or
        substrFunction(striExpr("1234567890"), -5, intExpr( 8)) <> "12" or
        substrFunction(striExpr("1234567890"), -5, intExpr(11)) <> "12345" or
        substrFunction(striExpr("1234567890"), -5, intExpr(15)) <> "123456789" or
        substrFunction(striExpr("1234567890"), -5, intExpr(16)) <> "1234567890" or
        substrFunction(striExpr("1234567890"), -5, intExpr(17)) <> "1234567890" or
        substrFunction(striExpr("1234567890"), -5, intExpr(20)) <> "1234567890" or
        substrFunction(striExpr("1234567890"),  0, intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"),  0, intExpr(-1)) <> "" or
        substrFunction(striExpr("1234567890"),  0, intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"),  0, intExpr( 1)) <> "" or
        substrFunction(striExpr("1234567890"),  0, intExpr( 2)) <> "1" or
        substrFunction(striExpr("1234567890"),  0, intExpr( 3)) <> "12" or
        substrFunction(striExpr("1234567890"),  0, intExpr( 6)) <> "12345" or
        substrFunction(striExpr("1234567890"),  0, intExpr(10)) <> "123456789" or
        substrFunction(striExpr("1234567890"),  0, intExpr(11)) <> "1234567890" or
        substrFunction(striExpr("1234567890"),  0, intExpr(12)) <> "1234567890" or
        substrFunction(striExpr("1234567890"),  0, intExpr(15)) <> "1234567890" or
        substrFunction(striExpr("1234567890"),  1, intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"),  1, intExpr(-1)) <> "" or
        substrFunction(striExpr("1234567890"),  1, intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"),  1, intExpr( 1)) <> "1" or
        substrFunction(striExpr("1234567890"),  1, intExpr( 2)) <> "12" or
        substrFunction(striExpr("1234567890"),  1, intExpr( 5)) <> "12345" or
        substrFunction(striExpr("1234567890"),  1, intExpr( 9)) <> "123456789" or
        substrFunction(striExpr("1234567890"),  1, intExpr(10)) <> "1234567890" or
        substrFunction(striExpr("1234567890"),  1, intExpr(11)) <> "1234567890" or
        substrFunction(striExpr("1234567890"),  1, intExpr(15)) <> "1234567890" or
        substrFunction(striExpr("1234567890"),  2, intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"),  2, intExpr(-1)) <> "" or
        substrFunction(striExpr("1234567890"),  2, intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"),  2, intExpr( 1)) <> "2" or
        substrFunction(striExpr("1234567890"),  2, intExpr( 2)) <> "23" or
        substrFunction(striExpr("1234567890"),  2, intExpr( 5)) <> "23456" or
        substrFunction(striExpr("1234567890"),  2, intExpr( 8)) <> "23456789" or
        substrFunction(striExpr("1234567890"),  2, intExpr( 9)) <> "234567890" or
        substrFunction(striExpr("1234567890"),  2, intExpr(10)) <> "234567890" or
        substrFunction(striExpr("1234567890"),  2, intExpr(15)) <> "234567890" or
        substrFunction(striExpr("1234567890"),  5, intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"),  5, intExpr(-1)) <> "" or
        substrFunction(striExpr("1234567890"),  5, intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"),  5, intExpr( 1)) <> "5" or
        substrFunction(striExpr("1234567890"),  5, intExpr( 2)) <> "56" or
        substrFunction(striExpr("1234567890"),  5, intExpr( 5)) <> "56789" or
        substrFunction(striExpr("1234567890"),  5, intExpr( 6)) <> "567890" or
        substrFunction(striExpr("1234567890"),  5, intExpr( 7)) <> "567890" or
        substrFunction(striExpr("1234567890"),  5, intExpr(15)) <> "567890" or
        substrFunction(striExpr("1234567890"),  9, intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"),  9, intExpr(-1)) <> "" or
        substrFunction(striExpr("1234567890"),  9, intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"),  9, intExpr( 1)) <> "9" or
        substrFunction(striExpr("1234567890"),  9, intExpr( 2)) <> "90" or
        substrFunction(striExpr("1234567890"),  9, intExpr( 3)) <> "90" or
        substrFunction(striExpr("1234567890"),  9, intExpr(15)) <> "90" or
        substrFunction(striExpr("1234567890"), 10, intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"), 10, intExpr(-1)) <> "" or
        substrFunction(striExpr("1234567890"), 10, intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"), 10, intExpr( 1)) <> "0" or
        substrFunction(striExpr("1234567890"), 10, intExpr( 2)) <> "0" or
        substrFunction(striExpr("1234567890"), 10, intExpr(15)) <> "0" or
        substrFunction(striExpr("1234567890"), 11, intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"), 11, intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"), 11, intExpr( 1)) <> "" or
        substrFunction(striExpr("1234567890"), 11, intExpr( 2)) <> "" or
        substrFunction(striExpr("1234567890"), 11, intExpr(15)) <> "" or
        substrFunction(striExpr("1234567890"), 15, intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"), 15, intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"), 15, intExpr( 1)) <> "" or
        substrFunction(striExpr("1234567890"), 15, intExpr( 2)) <> "" or
        substrFunction(striExpr("1234567890"), 15, intExpr(20)) <> "" or
        substrFunction(striExpr(""), intExpr(-5), -9) <> "" or
        substrFunction(striExpr(""), intExpr(-5), -5) <> "" or
        substrFunction(striExpr(""), intExpr(-5),  0) <> "" or
        substrFunction(striExpr(""), intExpr(-5),  1) <> "" or
        substrFunction(striExpr(""), intExpr(-5),  6) <> "" or
        substrFunction(striExpr(""), intExpr(-5),  7) <> "" or
        substrFunction(striExpr(""), intExpr(-5),  8) <> "" or
        substrFunction(striExpr(""), intExpr(-5), 20) <> "" or
        substrFunction(striExpr(""), intExpr( 0), -5) <> "" or
        substrFunction(striExpr(""), intExpr( 0),  0) <> "" or
        substrFunction(striExpr(""), intExpr( 0),  1) <> "" or
        substrFunction(striExpr(""), intExpr( 0),  2) <> "" or
        substrFunction(striExpr(""), intExpr( 0), 15) <> "" or
        substrFunction(striExpr(""), intExpr( 1), -5) <> "" or
        substrFunction(striExpr(""), intExpr( 1),  0) <> "" or
        substrFunction(striExpr(""), intExpr( 1),  1) <> "" or
        substrFunction(striExpr(""), intExpr( 1),  2) <> "" or
        substrFunction(striExpr(""), intExpr( 1), 15) <> "" or
        substrFunction(striExpr(""), intExpr( 2), -5) <> "" or
        substrFunction(striExpr(""), intExpr( 2),  0) <> "" or
        substrFunction(striExpr(""), intExpr( 2),  1) <> "" or
        substrFunction(striExpr(""), intExpr( 2), 15) <> "" or
        substrFunction(striExpr(""), intExpr(15), -5) <> "" or
        substrFunction(striExpr(""), intExpr(15),  0) <> "" or
        substrFunction(striExpr(""), intExpr(15),  1) <> "" or
        substrFunction(striExpr(""), intExpr(15),  2) <> "" or
        substrFunction(striExpr(""), intExpr(15), 20) <> "" or
        substrFunction(striExpr("1"), intExpr(-5), -9) <> "" or
        substrFunction(striExpr("1"), intExpr(-5), -5) <> "" or
        substrFunction(striExpr("1"), intExpr(-5),  0) <> "" or
        substrFunction(striExpr("1"), intExpr(-5),  1) <> "" or
        substrFunction(striExpr("1"), intExpr(-5),  6) <> "" or
        substrFunction(striExpr("1"), intExpr(-5),  7) <> "1" or
        substrFunction(striExpr("1"), intExpr(-5),  8) <> "1" or
        substrFunction(striExpr("1"), intExpr(-5), 10) <> "1" or
        substrFunction(striExpr("1"), intExpr( 0), -5) <> "" or
        substrFunction(striExpr("1"), intExpr( 0),  0) <> "" or
        substrFunction(striExpr("1"), intExpr( 0),  1) <> "" or
        substrFunction(striExpr("1"), intExpr( 0),  2) <> "1" or
        substrFunction(striExpr("1"), intExpr( 0),  3) <> "1" or
        substrFunction(striExpr("1"), intExpr( 0), 15) <> "1" or
        substrFunction(striExpr("1"), intExpr( 1), -5) <> "" or
        substrFunction(striExpr("1"), intExpr( 1),  0) <> "" or
        substrFunction(striExpr("1"), intExpr( 1),  1) <> "1" or
        substrFunction(striExpr("1"), intExpr( 1),  2) <> "1" or
        substrFunction(striExpr("1"), intExpr( 1), 15) <> "1" or
        substrFunction(striExpr("1"), intExpr( 2), -5) <> "" or
        substrFunction(striExpr("1"), intExpr( 2),  0) <> "" or
        substrFunction(striExpr("1"), intExpr( 2),  1) <> "" or
        substrFunction(striExpr("1"), intExpr( 2),  2) <> "" or
        substrFunction(striExpr("1"), intExpr( 2), 15) <> "" or
        substrFunction(striExpr("1"), intExpr(15), -5) <> "" or
        substrFunction(striExpr("1"), intExpr(15),  0) <> "" or
        substrFunction(striExpr("1"), intExpr(15),  1) <> "" or
        substrFunction(striExpr("1"), intExpr(15),  2) <> "" or
        substrFunction(striExpr("1"), intExpr(15), 20) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(-5), -9) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(-5), -5) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(-5),  0) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(-5),  1) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(-5),  6) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(-5),  7) <> "1" or
        substrFunction(striExpr("1234567890"), intExpr(-5),  8) <> "12" or
        substrFunction(striExpr("1234567890"), intExpr(-5), 11) <> "12345" or
        substrFunction(striExpr("1234567890"), intExpr(-5), 15) <> "123456789" or
        substrFunction(striExpr("1234567890"), intExpr(-5), 16) <> "1234567890" or
        substrFunction(striExpr("1234567890"), intExpr(-5), 17) <> "1234567890" or
        substrFunction(striExpr("1234567890"), intExpr(-5), 20) <> "1234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 0), -5) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 0), -1) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 0),  0) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 0),  1) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 0),  2) <> "1" or
        substrFunction(striExpr("1234567890"), intExpr( 0),  3) <> "12" or
        substrFunction(striExpr("1234567890"), intExpr( 0),  6) <> "12345" or
        substrFunction(striExpr("1234567890"), intExpr( 0), 10) <> "123456789" or
        substrFunction(striExpr("1234567890"), intExpr( 0), 11) <> "1234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 0), 12) <> "1234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 0), 15) <> "1234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 1), -5) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 1), -1) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 1),  0) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 1),  1) <> "1" or
        substrFunction(striExpr("1234567890"), intExpr( 1),  2) <> "12" or
        substrFunction(striExpr("1234567890"), intExpr( 1),  5) <> "12345" or
        substrFunction(striExpr("1234567890"), intExpr( 1),  9) <> "123456789" or
        substrFunction(striExpr("1234567890"), intExpr( 1), 10) <> "1234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 1), 11) <> "1234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 1), 15) <> "1234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 2), -5) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 2), -1) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 2),  0) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 2),  1) <> "2" or
        substrFunction(striExpr("1234567890"), intExpr( 2),  2) <> "23" or
        substrFunction(striExpr("1234567890"), intExpr( 2),  5) <> "23456" or
        substrFunction(striExpr("1234567890"), intExpr( 2),  8) <> "23456789" or
        substrFunction(striExpr("1234567890"), intExpr( 2),  9) <> "234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 2), 10) <> "234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 2), 15) <> "234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 5), -5) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 5), -1) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 5),  0) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 5),  1) <> "5" or
        substrFunction(striExpr("1234567890"), intExpr( 5),  2) <> "56" or
        substrFunction(striExpr("1234567890"), intExpr( 5),  5) <> "56789" or
        substrFunction(striExpr("1234567890"), intExpr( 5),  6) <> "567890" or
        substrFunction(striExpr("1234567890"), intExpr( 5),  7) <> "567890" or
        substrFunction(striExpr("1234567890"), intExpr( 5), 15) <> "567890" or
        substrFunction(striExpr("1234567890"), intExpr( 9), -5) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 9), -1) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 9),  0) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 9),  1) <> "9" or
        substrFunction(striExpr("1234567890"), intExpr( 9),  2) <> "90" or
        substrFunction(striExpr("1234567890"), intExpr( 9),  3) <> "90" or
        substrFunction(striExpr("1234567890"), intExpr( 9), 15) <> "90" or
        substrFunction(striExpr("1234567890"), intExpr(10), -5) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(10), -1) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(10),  0) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(10),  1) <> "0" or
        substrFunction(striExpr("1234567890"), intExpr(10),  2) <> "0" or
        substrFunction(striExpr("1234567890"), intExpr(10), 15) <> "0" or
        substrFunction(striExpr("1234567890"), intExpr(11), -5) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(11),  0) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(11),  1) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(11),  2) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(11), 15) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(15), -5) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(15),  0) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(15),  1) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(15),  2) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(15), 20) <> "" or
        substrFunction(striExpr(""), intExpr(-5), intExpr(-9)) <> "" or
        substrFunction(striExpr(""), intExpr(-5), intExpr(-5)) <> "" or
        substrFunction(striExpr(""), intExpr(-5), intExpr( 0)) <> "" or
        substrFunction(striExpr(""), intExpr(-5), intExpr( 1)) <> "" or
        substrFunction(striExpr(""), intExpr(-5), intExpr( 6)) <> "" or
        substrFunction(striExpr(""), intExpr(-5), intExpr( 7)) <> "" or
        substrFunction(striExpr(""), intExpr(-5), intExpr( 8)) <> "" or
        substrFunction(striExpr(""), intExpr(-5), intExpr(20)) <> "" or
        substrFunction(striExpr(""), intExpr( 0), intExpr(-5)) <> "" or
        substrFunction(striExpr(""), intExpr( 0), intExpr( 0)) <> "" or
        substrFunction(striExpr(""), intExpr( 0), intExpr( 1)) <> "" or
        substrFunction(striExpr(""), intExpr( 0), intExpr( 2)) <> "" or
        substrFunction(striExpr(""), intExpr( 0), intExpr(15)) <> "" or
        substrFunction(striExpr(""), intExpr( 1), intExpr(-5)) <> "" or
        substrFunction(striExpr(""), intExpr( 1), intExpr( 0)) <> "" or
        substrFunction(striExpr(""), intExpr( 1), intExpr( 1)) <> "" or
        substrFunction(striExpr(""), intExpr( 1), intExpr( 2)) <> "" or
        substrFunction(striExpr(""), intExpr( 1), intExpr(15)) <> "" or
        substrFunction(striExpr(""), intExpr( 2), intExpr(-5)) <> "" or
        substrFunction(striExpr(""), intExpr( 2), intExpr( 0)) <> "" or
        substrFunction(striExpr(""), intExpr( 2), intExpr( 1)) <> "" or
        substrFunction(striExpr(""), intExpr( 2), intExpr(15)) <> "" or
        substrFunction(striExpr(""), intExpr(15), intExpr(-5)) <> "" or
        substrFunction(striExpr(""), intExpr(15), intExpr( 0)) <> "" or
        substrFunction(striExpr(""), intExpr(15), intExpr( 1)) <> "" or
        substrFunction(striExpr(""), intExpr(15), intExpr( 2)) <> "" or
        substrFunction(striExpr(""), intExpr(15), intExpr(20)) <> "" or
        substrFunction(striExpr("1"), intExpr(-5), intExpr(-9)) <> "" or
        substrFunction(striExpr("1"), intExpr(-5), intExpr(-5)) <> "" or
        substrFunction(striExpr("1"), intExpr(-5), intExpr( 0)) <> "" or
        substrFunction(striExpr("1"), intExpr(-5), intExpr( 1)) <> "" or
        substrFunction(striExpr("1"), intExpr(-5), intExpr( 6)) <> "" or
        substrFunction(striExpr("1"), intExpr(-5), intExpr( 7)) <> "1" or
        substrFunction(striExpr("1"), intExpr(-5), intExpr( 8)) <> "1" or
        substrFunction(striExpr("1"), intExpr(-5), intExpr(10)) <> "1" or
        substrFunction(striExpr("1"), intExpr( 0), intExpr(-5)) <> "" or
        substrFunction(striExpr("1"), intExpr( 0), intExpr( 0)) <> "" or
        substrFunction(striExpr("1"), intExpr( 0), intExpr( 1)) <> "" or
        substrFunction(striExpr("1"), intExpr( 0), intExpr( 2)) <> "1" or
        substrFunction(striExpr("1"), intExpr( 0), intExpr( 3)) <> "1" or
        substrFunction(striExpr("1"), intExpr( 0), intExpr(15)) <> "1" or
        substrFunction(striExpr("1"), intExpr( 1), intExpr(-5)) <> "" or
        substrFunction(striExpr("1"), intExpr( 1), intExpr( 0)) <> "" or
        substrFunction(striExpr("1"), intExpr( 1), intExpr( 1)) <> "1" or
        substrFunction(striExpr("1"), intExpr( 1), intExpr( 2)) <> "1" or
        substrFunction(striExpr("1"), intExpr( 1), intExpr(15)) <> "1" or
        substrFunction(striExpr("1"), intExpr( 2), intExpr(-5)) <> "" or
        substrFunction(striExpr("1"), intExpr( 2), intExpr( 0)) <> "" or
        substrFunction(striExpr("1"), intExpr( 2), intExpr( 1)) <> "" or
        substrFunction(striExpr("1"), intExpr( 2), intExpr( 2)) <> "" or
        substrFunction(striExpr("1"), intExpr( 2), intExpr(15)) <> "" or
        substrFunction(striExpr("1"), intExpr(15), intExpr(-5)) <> "" or
        substrFunction(striExpr("1"), intExpr(15), intExpr( 0)) <> "" or
        substrFunction(striExpr("1"), intExpr(15), intExpr( 1)) <> "" or
        substrFunction(striExpr("1"), intExpr(15), intExpr( 2)) <> "" or
        substrFunction(striExpr("1"), intExpr(15), intExpr(20)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(-5), intExpr(-9)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(-5), intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(-5), intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(-5), intExpr( 1)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(-5), intExpr( 6)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(-5), intExpr( 7)) <> "1" or
        substrFunction(striExpr("1234567890"), intExpr(-5), intExpr( 8)) <> "12" or
        substrFunction(striExpr("1234567890"), intExpr(-5), intExpr(11)) <> "12345" or
        substrFunction(striExpr("1234567890"), intExpr(-5), intExpr(15)) <> "123456789" or
        substrFunction(striExpr("1234567890"), intExpr(-5), intExpr(16)) <> "1234567890" or
        substrFunction(striExpr("1234567890"), intExpr(-5), intExpr(17)) <> "1234567890" or
        substrFunction(striExpr("1234567890"), intExpr(-5), intExpr(20)) <> "1234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 0), intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 0), intExpr(-1)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 0), intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 0), intExpr( 1)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 0), intExpr( 2)) <> "1" or
        substrFunction(striExpr("1234567890"), intExpr( 0), intExpr( 3)) <> "12" or
        substrFunction(striExpr("1234567890"), intExpr( 0), intExpr( 6)) <> "12345" or
        substrFunction(striExpr("1234567890"), intExpr( 0), intExpr(10)) <> "123456789" or
        substrFunction(striExpr("1234567890"), intExpr( 0), intExpr(11)) <> "1234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 0), intExpr(12)) <> "1234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 0), intExpr(15)) <> "1234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 1), intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 1), intExpr(-1)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 1), intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 1), intExpr( 1)) <> "1" or
        substrFunction(striExpr("1234567890"), intExpr( 1), intExpr( 2)) <> "12" or
        substrFunction(striExpr("1234567890"), intExpr( 1), intExpr( 5)) <> "12345" or
        substrFunction(striExpr("1234567890"), intExpr( 1), intExpr( 9)) <> "123456789" or
        substrFunction(striExpr("1234567890"), intExpr( 1), intExpr(10)) <> "1234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 1), intExpr(11)) <> "1234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 1), intExpr(15)) <> "1234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 2), intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 2), intExpr(-1)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 2), intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 2), intExpr( 1)) <> "2" or
        substrFunction(striExpr("1234567890"), intExpr( 2), intExpr( 2)) <> "23" or
        substrFunction(striExpr("1234567890"), intExpr( 2), intExpr( 5)) <> "23456" or
        substrFunction(striExpr("1234567890"), intExpr( 2), intExpr( 8)) <> "23456789" or
        substrFunction(striExpr("1234567890"), intExpr( 2), intExpr( 9)) <> "234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 2), intExpr(10)) <> "234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 2), intExpr(15)) <> "234567890" or
        substrFunction(striExpr("1234567890"), intExpr( 5), intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 5), intExpr(-1)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 5), intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 5), intExpr( 1)) <> "5" or
        substrFunction(striExpr("1234567890"), intExpr( 5), intExpr( 2)) <> "56" or
        substrFunction(striExpr("1234567890"), intExpr( 5), intExpr( 5)) <> "56789" or
        substrFunction(striExpr("1234567890"), intExpr( 5), intExpr( 6)) <> "567890" or
        substrFunction(striExpr("1234567890"), intExpr( 5), intExpr( 7)) <> "567890" or
        substrFunction(striExpr("1234567890"), intExpr( 5), intExpr(15)) <> "567890" or
        substrFunction(striExpr("1234567890"), intExpr( 9), intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 9), intExpr(-1)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 9), intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr( 9), intExpr( 1)) <> "9" or
        substrFunction(striExpr("1234567890"), intExpr( 9), intExpr( 2)) <> "90" or
        substrFunction(striExpr("1234567890"), intExpr( 9), intExpr( 3)) <> "90" or
        substrFunction(striExpr("1234567890"), intExpr( 9), intExpr(15)) <> "90" or
        substrFunction(striExpr("1234567890"), intExpr(10), intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(10), intExpr(-1)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(10), intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(10), intExpr( 1)) <> "0" or
        substrFunction(striExpr("1234567890"), intExpr(10), intExpr( 2)) <> "0" or
        substrFunction(striExpr("1234567890"), intExpr(10), intExpr(15)) <> "0" or
        substrFunction(striExpr("1234567890"), intExpr(11), intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(11), intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(11), intExpr( 1)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(11), intExpr( 2)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(11), intExpr(15)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(15), intExpr(-5)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(15), intExpr( 0)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(15), intExpr( 1)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(15), intExpr( 2)) <> "" or
        substrFunction(striExpr("1234567890"), intExpr(15), intExpr(20)) <> "" then
      writeln(" ***** STRING [ START len LENGTH ] via a function does not work correct. (2)");
      okay := FALSE;
    end if;

    if  "" [-2147483643 len 2147483647] <> "" or
        "" [-2147483644 len 2147483647] <> "" or
        "" [-2147483645 len 2147483647] <> "" or
        "" [-2147483646 len 2147483647] <> "" or
        "" [-2147483647 len 2147483647] <> "" or
        "" [pred(-2147483647) len 2147483647] <> "" or
        "1" [-2147483643 len 2147483647] <> "1" or
        "1" [-2147483644 len 2147483647] <> "1" or
        "1" [-2147483645 len 2147483647] <> "1" or
        "1" [-2147483646 len 2147483647] <> "" or
        "1" [-2147483647 len 2147483647] <> "" or
        "1" [pred(-2147483647) len 2147483647] <> "" or
        "12" [-2147483643 len 2147483647] <> "12" or
        "12" [-2147483644 len 2147483647] <> "12" or
        "12" [-2147483645 len 2147483647] <> "1" or
        "12" [-2147483646 len 2147483647] <> "" or
        "12" [-2147483647 len 2147483647] <> "" or
        "12" [pred(-2147483647) len 2147483647] <> "" or
        "123" [-2147483643 len 2147483647] <> "123" or
        "123" [-2147483644 len 2147483647] <> "12" or
        "123" [-2147483645 len 2147483647] <> "1" or
        "123" [-2147483646 len 2147483647] <> "" or
        "123" [-2147483647 len 2147483647] <> "" or
        "123" [pred(-2147483647) len 2147483647] <> "" or
        "1234" [-2147483643 len 2147483647] <> "123" or
        "1234" [-2147483644 len 2147483647] <> "12" or
        "1234" [-2147483645 len 2147483647] <> "1" or
        "1234" [-2147483646 len 2147483647] <> "" or
        "1234" [-2147483647 len 2147483647] <> "" or
        "1234" [pred(-2147483647) len 2147483647] <> "" then
      writeln(" ***** STRING [ START len LENGTH ] does not work correct.");
      okay := FALSE;
    end if;

    if okay then
      writeln("String substr works correct.");
    end if;
  end func;


const proc: check_string_concat is func
  local
    var boolean: okay is TRUE;
  begin
    if  "" & "" <> "" or
        "" & "a" <> "a" or
        "a" & "" <> "a" or
        "" & "ab" <> "ab" or
        "a" & "b" <> "ab" or
        "ab" & "" <> "ab" or
        "" & "abc" <> "abc" or
        "a" & "bc" <> "abc" or
        "ab" & "c" <> "abc" or
        "abc" & "" <> "abc" or
        "" & "abcd" <> "abcd" or
        "a" & "bcd" <> "abcd" or
        "ab" & "cd" <> "abcd" or
        "abc" & "d" <> "abcd" or
        "abcd" & "" <> "abcd" or
        "" & "abcde" <> "abcde" or
        "a" & "bcde" <> "abcde" or
        "ab" & "cde" <> "abcde" or
        "abc" & "de" <> "abcde" or
        "abcd" & "e" <> "abcde" or
        "abcde" & "" <> "abcde" or
        "" & "abcdef" <> "abcdef" or
        "a" & "bcdef" <> "abcdef" or
        "ab" & "cdef" <> "abcdef" or
        "abc" & "def" <> "abcdef" or
        "abcd" & "ef" <> "abcdef" or
        "abcde" & "f" <> "abcdef" or
        "abcdef" & "" <> "abcdef" or
        "" & "abcdefghij" <> "abcdefghij" or
        "a" & "bcdefghij" <> "abcdefghij" or
        "ab" & "cdefghij" <> "abcdefghij" or
        "abc" & "defghij" <> "abcdefghij" or
        "abcd" & "efghij" <> "abcdefghij" or
        "abcde" & "fghij" <> "abcdefghij" or
        "abcdef" & "ghij" <> "abcdefghij" or
        "abcdefg" & "hij" <> "abcdefghij" or
        "abcdefgh" & "ij" <> "abcdefghij" or
        "abcdefghi" & "j" <> "abcdefghij" or
        "abcdefghij" & "" <> "abcdefghij" or

                 ""  &          ""  <> "" or
        striExpr("") &          ""  <> "" or
                 ""  & striExpr("") <> "" or
        striExpr("") & striExpr("") <> "" or
                 ""  &          "cd"  <> "cd" or
        striExpr("") &          "cd"  <> "cd" or
                 ""  & striExpr("cd") <> "cd" or
        striExpr("") & striExpr("cd") <> "cd" or
                 "ab"  &          ""  <> "ab" or
        striExpr("ab") &          ""  <> "ab" or
                 "ab"  & striExpr("") <> "ab" or
        striExpr("ab") & striExpr("") <> "ab" or
                 "ab"  &          "cd"  <> "abcd" or
        striExpr("ab") &          "cd"  <> "abcd" or
                 "ab"  & striExpr("cd") <> "abcd" or
        striExpr("ab") & striExpr("cd") <> "abcd" or

                 ""  &          ""  &          ""  <> "" or
        striExpr("") &          ""  &          ""  <> "" or
                 ""  & striExpr("") &          ""  <> "" or
        striExpr("") & striExpr("") &          ""  <> "" or
                 ""  &          ""  & striExpr("") <> "" or
        striExpr("") &          ""  & striExpr("") <> "" or
                 ""  & striExpr("") & striExpr("") <> "" or
        striExpr("") & striExpr("") & striExpr("") <> "" or
                 ""  &          ""  &          "ef"  <> "ef" or
        striExpr("") &          ""  &          "ef"  <> "ef" or
                 ""  & striExpr("") &          "ef"  <> "ef" or
        striExpr("") & striExpr("") &          "ef"  <> "ef" or
                 ""  &          ""  & striExpr("ef") <> "ef" or
        striExpr("") &          ""  & striExpr("ef") <> "ef" or
                 ""  & striExpr("") & striExpr("ef") <> "ef" or
        striExpr("") & striExpr("") & striExpr("ef") <> "ef" or
                 ""  &          "cd"  &          ""  <> "cd" or
        striExpr("") &          "cd"  &          ""  <> "cd" or
                 ""  & striExpr("cd") &          ""  <> "cd" or
        striExpr("") & striExpr("cd") &          ""  <> "cd" or
                 ""  &          "cd"  & striExpr("") <> "cd" or
        striExpr("") &          "cd"  & striExpr("") <> "cd" or
                 ""  & striExpr("cd") & striExpr("") <> "cd" or
        striExpr("") & striExpr("cd") & striExpr("") <> "cd" or
                 ""  &          "cd"  &          "ef"  <> "cdef" or
        striExpr("") &          "cd"  &          "ef"  <> "cdef" or
                 ""  & striExpr("cd") &          "ef"  <> "cdef" or
        striExpr("") & striExpr("cd") &          "ef"  <> "cdef" or
                 ""  &          "cd"  & striExpr("ef") <> "cdef" or
        striExpr("") &          "cd"  & striExpr("ef") <> "cdef" or
                 ""  & striExpr("cd") & striExpr("ef") <> "cdef" or
        striExpr("") & striExpr("cd") & striExpr("ef") <> "cdef" or
                 "ab"  &          ""  &          ""  <> "ab" or
        striExpr("ab") &          ""  &          ""  <> "ab" or
                 "ab"  & striExpr("") &          ""  <> "ab" or
        striExpr("ab") & striExpr("") &          ""  <> "ab" or
                 "ab"  &          ""  & striExpr("") <> "ab" or
        striExpr("ab") &          ""  & striExpr("") <> "ab" or
                 "ab"  & striExpr("") & striExpr("") <> "ab" or
        striExpr("ab") & striExpr("") & striExpr("") <> "ab" or
                 "ab"  &          ""  &          "ef"  <> "abef" or
        striExpr("ab") &          ""  &          "ef"  <> "abef" or
                 "ab"  & striExpr("") &          "ef"  <> "abef" or
        striExpr("ab") & striExpr("") &          "ef"  <> "abef" or
                 "ab"  &          ""  & striExpr("ef") <> "abef" or
        striExpr("ab") &          ""  & striExpr("ef") <> "abef" or
                 "ab"  & striExpr("") & striExpr("ef") <> "abef" or
        striExpr("ab") & striExpr("") & striExpr("ef") <> "abef" or
                 "ab"  &          "cd"  &          ""  <> "abcd" or
        striExpr("ab") &          "cd"  &          ""  <> "abcd" or
                 "ab"  & striExpr("cd") &          ""  <> "abcd" or
        striExpr("ab") & striExpr("cd") &          ""  <> "abcd" or
                 "ab"  &          "cd"  & striExpr("") <> "abcd" or
        striExpr("ab") &          "cd"  & striExpr("") <> "abcd" or
                 "ab"  & striExpr("cd") & striExpr("") <> "abcd" or
        striExpr("ab") & striExpr("cd") & striExpr("") <> "abcd" or
                 "ab"  &          "cd"  &          "ef"  <> "abcdef" or
        striExpr("ab") &          "cd"  &          "ef"  <> "abcdef" or
                 "ab"  & striExpr("cd") &          "ef"  <> "abcdef" or
        striExpr("ab") & striExpr("cd") &          "ef"  <> "abcdef" or
                 "ab"  &          "cd"  & striExpr("ef") <> "abcdef" or
        striExpr("ab") &          "cd"  & striExpr("ef") <> "abcdef" or
                 "ab"  & striExpr("cd") & striExpr("ef") <> "abcdef" or
        striExpr("ab") & striExpr("cd") & striExpr("ef") <> "abcdef" or

                 ""  &          ""  &          ""  &          ""  <> "" or
        striExpr("") &          ""  &          ""  &          ""  <> "" or
                 ""  & striExpr("") &          ""  &          ""  <> "" or
        striExpr("") & striExpr("") &          ""  &          ""  <> "" or
                 ""  &          ""  & striExpr("") &          ""  <> "" or
        striExpr("") &          ""  & striExpr("") &          ""  <> "" or
                 ""  & striExpr("") & striExpr("") &          ""  <> "" or
        striExpr("") & striExpr("") & striExpr("") &          ""  <> "" or
                 ""  &          ""  &          ""  & striExpr("") <> "" or
        striExpr("") &          ""  &          ""  & striExpr("") <> "" or
                 ""  & striExpr("") &          ""  & striExpr("") <> "" or
        striExpr("") & striExpr("") &          ""  & striExpr("") <> "" or
                 ""  &          ""  & striExpr("") & striExpr("") <> "" or
        striExpr("") &          ""  & striExpr("") & striExpr("") <> "" or
                 ""  & striExpr("") & striExpr("") & striExpr("") <> "" or
        striExpr("") & striExpr("") & striExpr("") & striExpr("") <> "" or
                 ""  &          ""  &          ""  &          "gh"  <> "gh" or
        striExpr("") &          ""  &          ""  &          "gh"  <> "gh" or
                 ""  & striExpr("") &          ""  &          "gh"  <> "gh" or
        striExpr("") & striExpr("") &          ""  &          "gh"  <> "gh" or
                 ""  &          ""  & striExpr("") &          "gh"  <> "gh" or
        striExpr("") &          ""  & striExpr("") &          "gh"  <> "gh" or
                 ""  & striExpr("") & striExpr("") &          "gh"  <> "gh" or
        striExpr("") & striExpr("") & striExpr("") &          "gh"  <> "gh" or
                 ""  &          ""  &          ""  & striExpr("gh") <> "gh" or
        striExpr("") &          ""  &          ""  & striExpr("gh") <> "gh" or
                 ""  & striExpr("") &          ""  & striExpr("gh") <> "gh" or
        striExpr("") & striExpr("") &          ""  & striExpr("gh") <> "gh" or
                 ""  &          ""  & striExpr("") & striExpr("gh") <> "gh" or
        striExpr("") &          ""  & striExpr("") & striExpr("gh") <> "gh" or
                 ""  & striExpr("") & striExpr("") & striExpr("gh") <> "gh" or
        striExpr("") & striExpr("") & striExpr("") & striExpr("gh") <> "gh" or
                 ""  &          ""  &          "ef"  &          ""  <> "ef" or
        striExpr("") &          ""  &          "ef"  &          ""  <> "ef" or
                 ""  & striExpr("") &          "ef"  &          ""  <> "ef" or
        striExpr("") & striExpr("") &          "ef"  &          ""  <> "ef" or
                 ""  &          ""  & striExpr("ef") &          ""  <> "ef" or
        striExpr("") &          ""  & striExpr("ef") &          ""  <> "ef" or
                 ""  & striExpr("") & striExpr("ef") &          ""  <> "ef" or
        striExpr("") & striExpr("") & striExpr("ef") &          ""  <> "ef" or
                 ""  &          ""  &          "ef"  & striExpr("") <> "ef" or
        striExpr("") &          ""  &          "ef"  & striExpr("") <> "ef" or
                 ""  & striExpr("") &          "ef"  & striExpr("") <> "ef" or
        striExpr("") & striExpr("") &          "ef"  & striExpr("") <> "ef" or
                 ""  &          ""  & striExpr("ef") & striExpr("") <> "ef" or
        striExpr("") &          ""  & striExpr("ef") & striExpr("") <> "ef" or
                 ""  & striExpr("") & striExpr("ef") & striExpr("") <> "ef" or
        striExpr("") & striExpr("") & striExpr("ef") & striExpr("") <> "ef" or
                 ""  &          ""  &          "ef"  &          "gh"  <> "efgh" or
        striExpr("") &          ""  &          "ef"  &          "gh"  <> "efgh" or
                 ""  & striExpr("") &          "ef"  &          "gh"  <> "efgh" or
        striExpr("") & striExpr("") &          "ef"  &          "gh"  <> "efgh" or
                 ""  &          ""  & striExpr("ef") &          "gh"  <> "efgh" or
        striExpr("") &          ""  & striExpr("ef") &          "gh"  <> "efgh" or
                 ""  & striExpr("") & striExpr("ef") &          "gh"  <> "efgh" or
        striExpr("") & striExpr("") & striExpr("ef") &          "gh"  <> "efgh" or
                 ""  &          ""  &          "ef"  & striExpr("gh") <> "efgh" or
        striExpr("") &          ""  &          "ef"  & striExpr("gh") <> "efgh" or
                 ""  & striExpr("") &          "ef"  & striExpr("gh") <> "efgh" or
        striExpr("") & striExpr("") &          "ef"  & striExpr("gh") <> "efgh" or
                 ""  &          ""  & striExpr("ef") & striExpr("gh") <> "efgh" or
        striExpr("") &          ""  & striExpr("ef") & striExpr("gh") <> "efgh" or
                 ""  & striExpr("") & striExpr("ef") & striExpr("gh") <> "efgh" or
        striExpr("") & striExpr("") & striExpr("ef") & striExpr("gh") <> "efgh" or
                 ""  &          "cd"  &          ""  &          ""  <> "cd" or
        striExpr("") &          "cd"  &          ""  &          ""  <> "cd" or
                 ""  & striExpr("cd") &          ""  &          ""  <> "cd" or
        striExpr("") & striExpr("cd") &          ""  &          ""  <> "cd" or
                 ""  &          "cd"  & striExpr("") &          ""  <> "cd" or
        striExpr("") &          "cd"  & striExpr("") &          ""  <> "cd" or
                 ""  & striExpr("cd") & striExpr("") &          ""  <> "cd" or
        striExpr("") & striExpr("cd") & striExpr("") &          ""  <> "cd" or
                 ""  &          "cd"  &          ""  & striExpr("") <> "cd" or
        striExpr("") &          "cd"  &          ""  & striExpr("") <> "cd" or
                 ""  & striExpr("cd") &          ""  & striExpr("") <> "cd" or
        striExpr("") & striExpr("cd") &          ""  & striExpr("") <> "cd" or
                 ""  &          "cd"  & striExpr("") & striExpr("") <> "cd" or
        striExpr("") &          "cd"  & striExpr("") & striExpr("") <> "cd" or
                 ""  & striExpr("cd") & striExpr("") & striExpr("") <> "cd" or
        striExpr("") & striExpr("cd") & striExpr("") & striExpr("") <> "cd" or
                 ""  &          "cd"  &          ""  &          "gh"  <> "cdgh" or
        striExpr("") &          "cd"  &          ""  &          "gh"  <> "cdgh" or
                 ""  & striExpr("cd") &          ""  &          "gh"  <> "cdgh" or
        striExpr("") & striExpr("cd") &          ""  &          "gh"  <> "cdgh" or
                 ""  &          "cd"  & striExpr("") &          "gh"  <> "cdgh" or
        striExpr("") &          "cd"  & striExpr("") &          "gh"  <> "cdgh" or
                 ""  & striExpr("cd") & striExpr("") &          "gh"  <> "cdgh" or
        striExpr("") & striExpr("cd") & striExpr("") &          "gh"  <> "cdgh" or
                 ""  &          "cd"  &          ""  & striExpr("gh") <> "cdgh" or
        striExpr("") &          "cd"  &          ""  & striExpr("gh") <> "cdgh" or
                 ""  & striExpr("cd") &          ""  & striExpr("gh") <> "cdgh" or
        striExpr("") & striExpr("cd") &          ""  & striExpr("gh") <> "cdgh" or
                 ""  &          "cd"  & striExpr("") & striExpr("gh") <> "cdgh" or
        striExpr("") &          "cd"  & striExpr("") & striExpr("gh") <> "cdgh" or
                 ""  & striExpr("cd") & striExpr("") & striExpr("gh") <> "cdgh" or
        striExpr("") & striExpr("cd") & striExpr("") & striExpr("gh") <> "cdgh" or
                 ""  &          "cd"  &          "ef"  &          ""  <> "cdef" or
        striExpr("") &          "cd"  &          "ef"  &          ""  <> "cdef" or
                 ""  & striExpr("cd") &          "ef"  &          ""  <> "cdef" or
        striExpr("") & striExpr("cd") &          "ef"  &          ""  <> "cdef" or
                 ""  &          "cd"  & striExpr("ef") &          ""  <> "cdef" or
        striExpr("") &          "cd"  & striExpr("ef") &          ""  <> "cdef" or
                 ""  & striExpr("cd") & striExpr("ef") &          ""  <> "cdef" or
        striExpr("") & striExpr("cd") & striExpr("ef") &          ""  <> "cdef" or
                 ""  &          "cd"  &          "ef"  & striExpr("") <> "cdef" or
        striExpr("") &          "cd"  &          "ef"  & striExpr("") <> "cdef" or
                 ""  & striExpr("cd") &          "ef"  & striExpr("") <> "cdef" or
        striExpr("") & striExpr("cd") &          "ef"  & striExpr("") <> "cdef" or
                 ""  &          "cd"  & striExpr("ef") & striExpr("") <> "cdef" or
        striExpr("") &          "cd"  & striExpr("ef") & striExpr("") <> "cdef" or
                 ""  & striExpr("cd") & striExpr("ef") & striExpr("") <> "cdef" or
        striExpr("") & striExpr("cd") & striExpr("ef") & striExpr("") <> "cdef" or
                 ""  &          "cd"  &          "ef"  &          "gh"  <> "cdefgh" or
        striExpr("") &          "cd"  &          "ef"  &          "gh"  <> "cdefgh" or
                 ""  & striExpr("cd") &          "ef"  &          "gh"  <> "cdefgh" or
        striExpr("") & striExpr("cd") &          "ef"  &          "gh"  <> "cdefgh" or
                 ""  &          "cd"  & striExpr("ef") &          "gh"  <> "cdefgh" or
        striExpr("") &          "cd"  & striExpr("ef") &          "gh"  <> "cdefgh" or
                 ""  & striExpr("cd") & striExpr("ef") &          "gh"  <> "cdefgh" or
        striExpr("") & striExpr("cd") & striExpr("ef") &          "gh"  <> "cdefgh" or
                 ""  &          "cd"  &          "ef"  & striExpr("gh") <> "cdefgh" or
        striExpr("") &          "cd"  &          "ef"  & striExpr("gh") <> "cdefgh" or
                 ""  & striExpr("cd") &          "ef"  & striExpr("gh") <> "cdefgh" or
        striExpr("") & striExpr("cd") &          "ef"  & striExpr("gh") <> "cdefgh" or
                 ""  &          "cd"  & striExpr("ef") & striExpr("gh") <> "cdefgh" or
        striExpr("") &          "cd"  & striExpr("ef") & striExpr("gh") <> "cdefgh" or
                 ""  & striExpr("cd") & striExpr("ef") & striExpr("gh") <> "cdefgh" or
        striExpr("") & striExpr("cd") & striExpr("ef") & striExpr("gh") <> "cdefgh" or
                 "ab"  &          ""  &          ""  &          ""  <> "ab" or
        striExpr("ab") &          ""  &          ""  &          ""  <> "ab" or
                 "ab"  & striExpr("") &          ""  &          ""  <> "ab" or
        striExpr("ab") & striExpr("") &          ""  &          ""  <> "ab" or
                 "ab"  &          ""  & striExpr("") &          ""  <> "ab" or
        striExpr("ab") &          ""  & striExpr("") &          ""  <> "ab" or
                 "ab"  & striExpr("") & striExpr("") &          ""  <> "ab" or
        striExpr("ab") & striExpr("") & striExpr("") &          ""  <> "ab" or
                 "ab"  &          ""  &          ""  & striExpr("") <> "ab" or
        striExpr("ab") &          ""  &          ""  & striExpr("") <> "ab" or
                 "ab"  & striExpr("") &          ""  & striExpr("") <> "ab" or
        striExpr("ab") & striExpr("") &          ""  & striExpr("") <> "ab" or
                 "ab"  &          ""  & striExpr("") & striExpr("") <> "ab" or
        striExpr("ab") &          ""  & striExpr("") & striExpr("") <> "ab" or
                 "ab"  & striExpr("") & striExpr("") & striExpr("") <> "ab" or
        striExpr("ab") & striExpr("") & striExpr("") & striExpr("") <> "ab" or
                 "ab"  &          ""  &          ""  &          "gh"  <> "abgh" or
        striExpr("ab") &          ""  &          ""  &          "gh"  <> "abgh" or
                 "ab"  & striExpr("") &          ""  &          "gh"  <> "abgh" or
        striExpr("ab") & striExpr("") &          ""  &          "gh"  <> "abgh" or
                 "ab"  &          ""  & striExpr("") &          "gh"  <> "abgh" or
        striExpr("ab") &          ""  & striExpr("") &          "gh"  <> "abgh" or
                 "ab"  & striExpr("") & striExpr("") &          "gh"  <> "abgh" or
        striExpr("ab") & striExpr("") & striExpr("") &          "gh"  <> "abgh" or
                 "ab"  &          ""  &          ""  & striExpr("gh") <> "abgh" or
        striExpr("ab") &          ""  &          ""  & striExpr("gh") <> "abgh" or
                 "ab"  & striExpr("") &          ""  & striExpr("gh") <> "abgh" or
        striExpr("ab") & striExpr("") &          ""  & striExpr("gh") <> "abgh" or
                 "ab"  &          ""  & striExpr("") & striExpr("gh") <> "abgh" or
        striExpr("ab") &          ""  & striExpr("") & striExpr("gh") <> "abgh" or
                 "ab"  & striExpr("") & striExpr("") & striExpr("gh") <> "abgh" or
        striExpr("ab") & striExpr("") & striExpr("") & striExpr("gh") <> "abgh" or
                 "ab"  &          ""  &          "ef"  &          ""  <> "abef" or
        striExpr("ab") &          ""  &          "ef"  &          ""  <> "abef" or
                 "ab"  & striExpr("") &          "ef"  &          ""  <> "abef" or
        striExpr("ab") & striExpr("") &          "ef"  &          ""  <> "abef" or
                 "ab"  &          ""  & striExpr("ef") &          ""  <> "abef" or
        striExpr("ab") &          ""  & striExpr("ef") &          ""  <> "abef" or
                 "ab"  & striExpr("") & striExpr("ef") &          ""  <> "abef" or
        striExpr("ab") & striExpr("") & striExpr("ef") &          ""  <> "abef" or
                 "ab"  &          ""  &          "ef"  & striExpr("") <> "abef" or
        striExpr("ab") &          ""  &          "ef"  & striExpr("") <> "abef" or
                 "ab"  & striExpr("") &          "ef"  & striExpr("") <> "abef" or
        striExpr("ab") & striExpr("") &          "ef"  & striExpr("") <> "abef" or
                 "ab"  &          ""  & striExpr("ef") & striExpr("") <> "abef" or
        striExpr("ab") &          ""  & striExpr("ef") & striExpr("") <> "abef" or
                 "ab"  & striExpr("") & striExpr("ef") & striExpr("") <> "abef" or
        striExpr("ab") & striExpr("") & striExpr("ef") & striExpr("") <> "abef" or
                 "ab"  &          ""  &          "ef"  &          "gh"  <> "abefgh" or
        striExpr("ab") &          ""  &          "ef"  &          "gh"  <> "abefgh" or
                 "ab"  & striExpr("") &          "ef"  &          "gh"  <> "abefgh" or
        striExpr("ab") & striExpr("") &          "ef"  &          "gh"  <> "abefgh" or
                 "ab"  &          ""  & striExpr("ef") &          "gh"  <> "abefgh" or
        striExpr("ab") &          ""  & striExpr("ef") &          "gh"  <> "abefgh" or
                 "ab"  & striExpr("") & striExpr("ef") &          "gh"  <> "abefgh" or
        striExpr("ab") & striExpr("") & striExpr("ef") &          "gh"  <> "abefgh" or
                 "ab"  &          ""  &          "ef"  & striExpr("gh") <> "abefgh" or
        striExpr("ab") &          ""  &          "ef"  & striExpr("gh") <> "abefgh" or
                 "ab"  & striExpr("") &          "ef"  & striExpr("gh") <> "abefgh" or
        striExpr("ab") & striExpr("") &          "ef"  & striExpr("gh") <> "abefgh" or
                 "ab"  &          ""  & striExpr("ef") & striExpr("gh") <> "abefgh" or
        striExpr("ab") &          ""  & striExpr("ef") & striExpr("gh") <> "abefgh" or
                 "ab"  & striExpr("") & striExpr("ef") & striExpr("gh") <> "abefgh" or
        striExpr("ab") & striExpr("") & striExpr("ef") & striExpr("gh") <> "abefgh" or
                 "ab"  &          "cd"  &          ""  &          ""  <> "abcd" or
        striExpr("ab") &          "cd"  &          ""  &          ""  <> "abcd" or
                 "ab"  & striExpr("cd") &          ""  &          ""  <> "abcd" or
        striExpr("ab") & striExpr("cd") &          ""  &          ""  <> "abcd" or
                 "ab"  &          "cd"  & striExpr("") &          ""  <> "abcd" or
        striExpr("ab") &          "cd"  & striExpr("") &          ""  <> "abcd" or
                 "ab"  & striExpr("cd") & striExpr("") &          ""  <> "abcd" or
        striExpr("ab") & striExpr("cd") & striExpr("") &          ""  <> "abcd" or
                 "ab"  &          "cd"  &          ""  & striExpr("") <> "abcd" or
        striExpr("ab") &          "cd"  &          ""  & striExpr("") <> "abcd" or
                 "ab"  & striExpr("cd") &          ""  & striExpr("") <> "abcd" or
        striExpr("ab") & striExpr("cd") &          ""  & striExpr("") <> "abcd" or
                 "ab"  &          "cd"  & striExpr("") & striExpr("") <> "abcd" or
        striExpr("ab") &          "cd"  & striExpr("") & striExpr("") <> "abcd" or
                 "ab"  & striExpr("cd") & striExpr("") & striExpr("") <> "abcd" or
        striExpr("ab") & striExpr("cd") & striExpr("") & striExpr("") <> "abcd" or
                 "ab"  &          "cd"  &          ""  &          "gh"  <> "abcdgh" or
        striExpr("ab") &          "cd"  &          ""  &          "gh"  <> "abcdgh" or
                 "ab"  & striExpr("cd") &          ""  &          "gh"  <> "abcdgh" or
        striExpr("ab") & striExpr("cd") &          ""  &          "gh"  <> "abcdgh" or
                 "ab"  &          "cd"  & striExpr("") &          "gh"  <> "abcdgh" or
        striExpr("ab") &          "cd"  & striExpr("") &          "gh"  <> "abcdgh" or
                 "ab"  & striExpr("cd") & striExpr("") &          "gh"  <> "abcdgh" or
        striExpr("ab") & striExpr("cd") & striExpr("") &          "gh"  <> "abcdgh" or
                 "ab"  &          "cd"  &          ""  & striExpr("gh") <> "abcdgh" or
        striExpr("ab") &          "cd"  &          ""  & striExpr("gh") <> "abcdgh" or
                 "ab"  & striExpr("cd") &          ""  & striExpr("gh") <> "abcdgh" or
        striExpr("ab") & striExpr("cd") &          ""  & striExpr("gh") <> "abcdgh" or
                 "ab"  &          "cd"  & striExpr("") & striExpr("gh") <> "abcdgh" or
        striExpr("ab") &          "cd"  & striExpr("") & striExpr("gh") <> "abcdgh" or
                 "ab"  & striExpr("cd") & striExpr("") & striExpr("gh") <> "abcdgh" or
        striExpr("ab") & striExpr("cd") & striExpr("") & striExpr("gh") <> "abcdgh" or
                 "ab"  &          "cd"  &          "ef"  &          ""  <> "abcdef" or
        striExpr("ab") &          "cd"  &          "ef"  &          ""  <> "abcdef" or
                 "ab"  & striExpr("cd") &          "ef"  &          ""  <> "abcdef" or
        striExpr("ab") & striExpr("cd") &          "ef"  &          ""  <> "abcdef" or
                 "ab"  &          "cd"  & striExpr("ef") &          ""  <> "abcdef" or
        striExpr("ab") &          "cd"  & striExpr("ef") &          ""  <> "abcdef" or
                 "ab"  & striExpr("cd") & striExpr("ef") &          ""  <> "abcdef" or
        striExpr("ab") & striExpr("cd") & striExpr("ef") &          ""  <> "abcdef" or
                 "ab"  &          "cd"  &          "ef"  & striExpr("") <> "abcdef" or
        striExpr("ab") &          "cd"  &          "ef"  & striExpr("") <> "abcdef" or
                 "ab"  & striExpr("cd") &          "ef"  & striExpr("") <> "abcdef" or
        striExpr("ab") & striExpr("cd") &          "ef"  & striExpr("") <> "abcdef" or
                 "ab"  &          "cd"  & striExpr("ef") & striExpr("") <> "abcdef" or
        striExpr("ab") &          "cd"  & striExpr("ef") & striExpr("") <> "abcdef" or
                 "ab"  & striExpr("cd") & striExpr("ef") & striExpr("") <> "abcdef" or
        striExpr("ab") & striExpr("cd") & striExpr("ef") & striExpr("") <> "abcdef" or
                 "ab"  &          "cd"  &          "ef"  &          "gh"  <> "abcdefgh" or
        striExpr("ab") &          "cd"  &          "ef"  &          "gh"  <> "abcdefgh" or
                 "ab"  & striExpr("cd") &          "ef"  &          "gh"  <> "abcdefgh" or
        striExpr("ab") & striExpr("cd") &          "ef"  &          "gh"  <> "abcdefgh" or
                 "ab"  &          "cd"  & striExpr("ef") &          "gh"  <> "abcdefgh" or
        striExpr("ab") &          "cd"  & striExpr("ef") &          "gh"  <> "abcdefgh" or
                 "ab"  & striExpr("cd") & striExpr("ef") &          "gh"  <> "abcdefgh" or
        striExpr("ab") & striExpr("cd") & striExpr("ef") &          "gh"  <> "abcdefgh" or
                 "ab"  &          "cd"  &          "ef"  & striExpr("gh") <> "abcdefgh" or
        striExpr("ab") &          "cd"  &          "ef"  & striExpr("gh") <> "abcdefgh" or
                 "ab"  & striExpr("cd") &          "ef"  & striExpr("gh") <> "abcdefgh" or
        striExpr("ab") & striExpr("cd") &          "ef"  & striExpr("gh") <> "abcdefgh" or
                 "ab"  &          "cd"  & striExpr("ef") & striExpr("gh") <> "abcdefgh" or
        striExpr("ab") &          "cd"  & striExpr("ef") & striExpr("gh") <> "abcdefgh" or
                 "ab"  & striExpr("cd") & striExpr("ef") & striExpr("gh") <> "abcdefgh" or
        striExpr("ab") & striExpr("cd") & striExpr("ef") & striExpr("gh") <> "abcdefgh" or

                 "ab"  &          "cd"  &          "ef"  &          "gh"  &          "ij"  <> "abcdefghij" or
        striExpr("ab") &          "cd"  &          "ef"  &          "gh"  &          "ij"  <> "abcdefghij" or
                 "ab"  & striExpr("cd") &          "ef"  &          "gh"  &          "ij"  <> "abcdefghij" or
        striExpr("ab") & striExpr("cd") &          "ef"  &          "gh"  &          "ij"  <> "abcdefghij" or
                 "ab"  &          "cd"  & striExpr("ef") &          "gh"  &          "ij"  <> "abcdefghij" or
        striExpr("ab") &          "cd"  & striExpr("ef") &          "gh"  &          "ij"  <> "abcdefghij" or
                 "ab"  & striExpr("cd") & striExpr("ef") &          "gh"  &          "ij"  <> "abcdefghij" or
        striExpr("ab") & striExpr("cd") & striExpr("ef") &          "gh"  &          "ij"  <> "abcdefghij" or
                 "ab"  &          "cd"  &          "ef"  & striExpr("gh") &          "ij"  <> "abcdefghij" or
        striExpr("ab") &          "cd"  &          "ef"  & striExpr("gh") &          "ij"  <> "abcdefghij" or
                 "ab"  & striExpr("cd") &          "ef"  & striExpr("gh") &          "ij"  <> "abcdefghij" or
        striExpr("ab") & striExpr("cd") &          "ef"  & striExpr("gh") &          "ij"  <> "abcdefghij" or
                 "ab"  &          "cd"  & striExpr("ef") & striExpr("gh") &          "ij"  <> "abcdefghij" or
        striExpr("ab") &          "cd"  & striExpr("ef") & striExpr("gh") &          "ij"  <> "abcdefghij" or
                 "ab"  & striExpr("cd") & striExpr("ef") & striExpr("gh") &          "ij"  <> "abcdefghij" or
        striExpr("ab") & striExpr("cd") & striExpr("ef") & striExpr("gh") &          "ij"  <> "abcdefghij" or
                 "ab"  &          "cd"  &          "ef"  &          "gh"  & striExpr("ij") <> "abcdefghij" or
        striExpr("ab") &          "cd"  &          "ef"  &          "gh"  & striExpr("ij") <> "abcdefghij" or
                 "ab"  & striExpr("cd") &          "ef"  &          "gh"  & striExpr("ij") <> "abcdefghij" or
        striExpr("ab") & striExpr("cd") &          "ef"  &          "gh"  & striExpr("ij") <> "abcdefghij" or
                 "ab"  &          "cd"  & striExpr("ef") &          "gh"  & striExpr("ij") <> "abcdefghij" or
        striExpr("ab") &          "cd"  & striExpr("ef") &          "gh"  & striExpr("ij") <> "abcdefghij" or
                 "ab"  & striExpr("cd") & striExpr("ef") &          "gh"  & striExpr("ij") <> "abcdefghij" or
        striExpr("ab") & striExpr("cd") & striExpr("ef") &          "gh"  & striExpr("ij") <> "abcdefghij" or
                 "ab"  &          "cd"  &          "ef"  & striExpr("gh") & striExpr("ij") <> "abcdefghij" or
        striExpr("ab") &          "cd"  &          "ef"  & striExpr("gh") & striExpr("ij") <> "abcdefghij" or
                 "ab"  & striExpr("cd") &          "ef"  & striExpr("gh") & striExpr("ij") <> "abcdefghij" or
        striExpr("ab") & striExpr("cd") &          "ef"  & striExpr("gh") & striExpr("ij") <> "abcdefghij" or
                 "ab"  &          "cd"  & striExpr("ef") & striExpr("gh") & striExpr("ij") <> "abcdefghij" or
        striExpr("ab") &          "cd"  & striExpr("ef") & striExpr("gh") & striExpr("ij") <> "abcdefghij" or
                 "ab"  & striExpr("cd") & striExpr("ef") & striExpr("gh") & striExpr("ij") <> "abcdefghij" or
        striExpr("ab") & striExpr("cd") & striExpr("ef") & striExpr("gh") & striExpr("ij") <> "abcdefghij" then

      writeln(" ***** STRING & STRING does not work correct.");
      okay := FALSE;
    end if;
    if okay then
      writeln("String concatenation works correct.");
    end if;
  end func;


const proc: check_string_mult is func
  local
    var boolean: okay is TRUE;
  begin
    if  "" mult 0 <> "" or
        "" mult 1 <> "" or
        "" mult 2 <> "" or
        "" mult 3 <> "" or
        "" mult 4 <> "" or
        "" mult 5 <> "" or
        "" mult 6 <> "" or
        "" mult 10 <> "" or
        "" mult 50 <> "" or
        "" mult 100 <> "" or
        "" mult 1000 <> "" or
        "" mult 10000 <> "" or
        "" mult 100000 <> "" or
        "" mult 1000000 <> "" or
        "" mult 10000000 <> "" or
        "" mult 100000000 <> "" or
        "" mult 1000000000 <> "" or
        "a" mult 0 <> "" or
        "a" mult 1 <> "a" or
        "a" mult 2 <> "aa" or
        "a" mult 3 <> "aaa" or
        "a" mult 4 <> "aaaa" or
        "a" mult 5 <> "aaaaa" or
        "a" mult 6 <> "aaaaaa" or
        "a" mult 7 <> "aaaaaaa" or
        "a" mult 8 <> "aaaaaaaa" or
        "a" mult 9 <> "aaaaaaaaa" or
        "a" mult 10 <> "aaaaaaaaaa" or
        "a" mult 15 <> "aaaaaaaaaaaaaaa" or
        "a" mult 16 <> "aaaaaaaaaaaaaaaa" or
        "a" mult 17 <> "aaaaaaaaaaaaaaaaa" or
        "a" mult 20 <> "aaaaaaaaaaaaaaaaaaaa" or
        "a" mult 25 <> "aaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult 30 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult 31 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult 32 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult 33 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult 35 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult 40 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult 50 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult 60 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult 63 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult 64 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult 65 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult 70 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult 80 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult 90 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                       \aaaaaaaaaa" or
        "a" mult 100 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                        \aaaaaaaaaaaaaaaaaaaa" or
        "a" mult 127 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                        \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult 128 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                        \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult 129 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                        \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult 150 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                        \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult 200 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                        \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                        \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "ab" mult 0 <> "" or
        "ab" mult 1 <> "ab" or
        "ab" mult 2 <> "abab" or
        "ab" mult 3 <> "ababab" or
        "ab" mult 4 <> "abababab" or
        "ab" mult 5 <> "ababababab" or
        "ab" mult 6 <> "abababababab" or
        "ab" mult 7 <> "ababababababab" or
        "ab" mult 8 <> "abababababababab" or
        "ab" mult 9 <> "ababababababababab" or
        "ab" mult 10 <> "abababababababababab" or
        "ab" mult 15 <> "ababababababababababababababab" or
        "ab" mult 16 <> "abababababababababababababababab" or
        "ab" mult 17 <> "ababababababababababababababababab" or
        "ab" mult 20 <> "abababababababababababababababababababab" or
        "ab" mult 25 <> "ababababababababababababababababababababababababab" or
        "ab" mult 30 <> "abababababababababababababababababababababababababababababab" or
        "ab" mult 31 <> "ababababababababababababababababababababababababababababababab" or
        "ab" mult 32 <> "abababababababababababababababababababababababababababababababab" or
        "ab" mult 33 <> "ababababababababababababababababababababababababababababababababab" or
        "ab" mult 35 <> "ababababababababababababababababababababababababababababababababababab" or
        "ab" mult 40 <> "abababababababababababababababababababababababababababababababababababababababab" or
        "ab" mult 50 <> "abababababababababababababababababababababababababababababababababababababababab\
                        \abababababababababab" or
        "ab" mult 60 <> "abababababababababababababababababababababababababababababababababababababababab\
                        \abababababababababababababababababababab" or
        "ab" mult 63 <> "abababababababababababababababababababababababababababababababababababababababab\
                        \ababababababababababababababababababababababab" or
        "ab" mult 64 <> "abababababababababababababababababababababababababababababababababababababababab\
                        \abababababababababababababababababababababababab" or
        "ab" mult 65 <> "abababababababababababababababababababababababababababababababababababababababab\
                        \ababababababababababababababababababababababababab" or
        "ab" mult 70 <> "abababababababababababababababababababababababababababababababababababababababab\
                        \abababababababababababababababababababababababababababababab" or
        "ab" mult 80 <> "abababababababababababababababababababababababababababababababababababababababab\
                        \abababababababababababababababababababababababababababababababababababababababab" or
        "ab" mult 90 <> "abababababababababababababababababababababababababababababababababababababababab\
                        \abababababababababababababababababababababababababababababababababababababababab\
                        \abababababababababab" or
        "ab" mult 100 <> "abababababababababababababababababababababababababababababababababababababababab\
                         \abababababababababababababababababababababababababababababababababababababababab\
                         \abababababababababababababababababababab" or
        "ab" mult 127 <> "abababababababababababababababababababababababababababababababababababababababab\
                         \abababababababababababababababababababababababababababababababababababababababab\
                         \abababababababababababababababababababababababababababababababababababababababab\
                         \ababababababab" or
        "ab" mult 128 <> "abababababababababababababababababababababababababababababababababababababababab\
                         \abababababababababababababababababababababababababababababababababababababababab\
                         \abababababababababababababababababababababababababababababababababababababababab\
                         \abababababababab" or
        "ab" mult 129 <> "abababababababababababababababababababababababababababababababababababababababab\
                         \abababababababababababababababababababababababababababababababababababababababab\
                         \abababababababababababababababababababababababababababababababababababababababab\
                         \ababababababababab" or
        "ab" mult 150 <> "abababababababababababababababababababababababababababababababababababababababab\
                         \abababababababababababababababababababababababababababababababababababababababab\
                         \abababababababababababababababababababababababababababababababababababababababab\
                         \abababababababababababababababababababababababababababababab" or
        "ab" mult 200 <> "abababababababababababababababababababababababababababababababababababababababab\
                         \abababababababababababababababababababababababababababababababababababababababab\
                         \abababababababababababababababababababababababababababababababababababababababab\
                         \abababababababababababababababababababababababababababababababababababababababab\
                         \abababababababababababababababababababababababababababababababababababababababab" or
        "abc" mult 0 <> "" or
        "abc" mult 1 <> "abc" or
        "abc" mult 2 <> "abcabc" or
        "abc" mult 3 <> "abcabcabc" or
        "abc" mult 4 <> "abcabcabcabc" or
        "abc" mult 5 <> "abcabcabcabcabc" or
        "abc" mult 6 <> "abcabcabcabcabcabc" or
        "abc" mult 7 <> "abcabcabcabcabcabcabc" or
        "abc" mult 8 <> "abcabcabcabcabcabcabcabc" or
        "abc" mult 9 <> "abcabcabcabcabcabcabcabcabc" or
        "abc" mult 10 <> "abcabcabcabcabcabcabcabcabcabc" or
        "abc" mult 15 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult 16 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult 17 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult 20 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult 25 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult 30 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabc" or
        "abc" mult 31 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabc" or
        "abc" mult 32 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabc" or
        "abc" mult 33 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabc" or
        "abc" mult 35 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabcabcabc" or
        "abc" mult 40 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult 50 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult 60 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabc" or
        "abc" mult 63 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabcabcabcabc" or
        "abc" mult 64 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabcabcabcabcabc" or
        "abc" mult 65 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult 70 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult 80 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult 90 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                         \abcabcabcabcabcabcabcabcabc" or
        "abc" mult 100 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult 127 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult 128 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult 129 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult 150 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult 200 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                          \abcabcabcabcabcabcabcabcabcabcabc" or
        "abcd" mult 0 <> "" or
        "abcd" mult 1 <> "abcd" or
        "abcd" mult 2 <> "abcdabcd" or
        "abcd" mult 3 <> "abcdabcdabcd" or
        "abcd" mult 4 <> "abcdabcdabcdabcd" or
        "abcd" mult 5 <> "abcdabcdabcdabcdabcd" or
        "abcd" mult 6 <> "abcdabcdabcdabcdabcdabcd" or
        "abcd" mult 7 <> "abcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 8 <> "abcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 9 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 10 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 15 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 16 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 17 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 20 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 25 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcd" or
        "abcd" mult 30 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 31 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 32 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 33 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 35 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 40 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 50 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 60 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 63 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcd" or
        "abcd" mult 64 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcd" or
        "abcd" mult 65 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcd" or
        "abcd" mult 70 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 80 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 90 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                          \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 100 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 127 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 128 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 129 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 150 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult 200 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                           \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcde" mult 0 <> "" or
        "abcde" mult 1 <> "abcde" or
        "abcde" mult 2 <> "abcdeabcde" or
        "abcde" mult 3 <> "abcdeabcdeabcde" or
        "abcde" mult 4 <> "abcdeabcdeabcdeabcde" or
        "abcde" mult 5 <> "abcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 6 <> "abcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 7 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 8 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 9 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 10 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 15 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 16 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 17 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcde" or
        "abcde" mult 20 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcde" or
        "abcde" mult 25 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 30 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 31 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 32 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 33 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcde" or
        "abcde" mult 35 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcde" or
        "abcde" mult 40 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 50 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcde" or
        "abcde" mult 60 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 63 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 64 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 65 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcde" or
        "abcde" mult 70 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 80 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 90 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                           \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 100 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcde" or
        "abcde" mult 127 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 128 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 129 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcde" or
        "abcde" mult 150 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult 200 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                            \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcdef" mult 0 <> "" or
        "abcdef" mult 1 <> "abcdef" or
        "abcdef" mult 2 <> "abcdefabcdef" or
        "abcdef" mult 3 <> "abcdefabcdefabcdef" or
        "abcdef" mult 4 <> "abcdefabcdefabcdefabcdef" or
        "abcdef" mult 5 <> "abcdefabcdefabcdefabcdefabcdef" or
        "abcdef" mult 6 <> "abcdefabcdefabcdefabcdefabcdefabcdef" or
        "abcdef" mult 7 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        "abcdef" mult 8 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        "abcdef" mult 9 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        "abcdef" mult 10 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        "abcdef" mult 15 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                            \abcdefabcdef" or
        "abcdef" mult 16 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                            \abcdefabcdefabcdef" or
        "abcdef" mult 17 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                            \abcdefabcdefabcdefabcdef" or
        "abcdef" mult 20 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                            \abcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        "abcdef" mult 25 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                            \abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        "abcdef" mult 30 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                            \abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                            \abcdefabcdefabcdefabcdef" or
        "abcdefghij" mult 0 <> "" or
        "abcdefghij" mult 1 <> "abcdefghij" or
        "abcdefghij" mult 2 <> "abcdefghijabcdefghij" or
        "abcdefghij" mult 3 <> "abcdefghijabcdefghijabcdefghij" or
        "abcdefghij" mult 4 <> "abcdefghijabcdefghijabcdefghijabcdefghij" or
        "abcdefghij" mult 5 <> "abcdefghijabcdefghijabcdefghijabcdefghijabcdefghij" or
        "abcdefghij" mult 6 <> "abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij" or
        "abcdefghij" mult 10 <> "abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij" then
      writeln(" ***** STRING mult integer does not work correct.");
      okay := FALSE;
    end if;

    if  striExpr("") mult 0 <> "" or
        striExpr("") mult 1 <> "" or
        striExpr("") mult 2 <> "" or
        striExpr("") mult 3 <> "" or
        striExpr("") mult 4 <> "" or
        striExpr("") mult 5 <> "" or
        striExpr("") mult 6 <> "" or
        striExpr("") mult 10 <> "" or
        striExpr("") mult 50 <> "" or
        striExpr("") mult 100 <> "" or
        striExpr("") mult 1000 <> "" or
        striExpr("") mult 10000 <> "" or
        striExpr("") mult 100000 <> "" or
        striExpr("") mult 1000000 <> "" or
        striExpr("") mult 10000000 <> "" or
        striExpr("") mult 100000000 <> "" or
        striExpr("") mult 1000000000 <> "" or
        striExpr("a") mult 0 <> "" or
        striExpr("a") mult 1 <> "a" or
        striExpr("a") mult 2 <> "aa" or
        striExpr("a") mult 3 <> "aaa" or
        striExpr("a") mult 4 <> "aaaa" or
        striExpr("a") mult 5 <> "aaaaa" or
        striExpr("a") mult 6 <> "aaaaaa" or
        striExpr("a") mult 7 <> "aaaaaaa" or
        striExpr("a") mult 8 <> "aaaaaaaa" or
        striExpr("a") mult 9 <> "aaaaaaaaa" or
        striExpr("a") mult 10 <> "aaaaaaaaaa" or
        striExpr("a") mult 15 <> "aaaaaaaaaaaaaaa" or
        striExpr("a") mult 16 <> "aaaaaaaaaaaaaaaa" or
        striExpr("a") mult 17 <> "aaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 20 <> "aaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 25 <> "aaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 30 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 31 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 32 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 33 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 35 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 40 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 50 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 60 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 63 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 64 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 65 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 70 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 80 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 90 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                 \aaaaaaaaaa" or
        striExpr("a") mult 100 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                  \aaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 127 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                  \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 128 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                  \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 129 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                  \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 150 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                  \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult 200 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                  \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                  \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("ab") mult 0 <> "" or
        striExpr("ab") mult 1 <> "ab" or
        striExpr("ab") mult 2 <> "abab" or
        striExpr("ab") mult 3 <> "ababab" or
        striExpr("ab") mult 4 <> "abababab" or
        striExpr("ab") mult 5 <> "ababababab" or
        striExpr("ab") mult 6 <> "abababababab" or
        striExpr("ab") mult 7 <> "ababababababab" or
        striExpr("ab") mult 8 <> "abababababababab" or
        striExpr("ab") mult 9 <> "ababababababababab" or
        striExpr("ab") mult 10 <> "abababababababababab" or
        striExpr("ab") mult 15 <> "ababababababababababababababab" or
        striExpr("ab") mult 16 <> "abababababababababababababababab" or
        striExpr("ab") mult 17 <> "ababababababababababababababababab" or
        striExpr("ab") mult 20 <> "abababababababababababababababababababab" or
        striExpr("ab") mult 25 <> "ababababababababababababababababababababababababab" or
        striExpr("ab") mult 30 <> "abababababababababababababababababababababababababababababab" or
        striExpr("ab") mult 31 <> "ababababababababababababababababababababababababababababababab" or
        striExpr("ab") mult 32 <> "abababababababababababababababababababababababababababababababab" or
        striExpr("ab") mult 33 <> "ababababababababababababababababababababababababababababababababab" or
        striExpr("ab") mult 35 <> "ababababababababababababababababababababababababababababababababababab" or
        striExpr("ab") mult 40 <> "abababababababababababababababababababababababababababababababababababababababab" or
        striExpr("ab") mult 50 <> "abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababab" or
        striExpr("ab") mult 60 <> "abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababab" or
        striExpr("ab") mult 63 <> "abababababababababababababababababababababababababababababababababababababababab\
                                  \ababababababababababababababababababababababab" or
        striExpr("ab") mult 64 <> "abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababababababab" or
        striExpr("ab") mult 65 <> "abababababababababababababababababababababababababababababababababababababababab\
                                  \ababababababababababababababababababababababababab" or
        striExpr("ab") mult 70 <> "abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababababababababababababab" or
        striExpr("ab") mult 80 <> "abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababababababababababababababababababababababab" or
        striExpr("ab") mult 90 <> "abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababab" or
        striExpr("ab") mult 100 <> "abababababababababababababababababababababababababababababababababababababababab\
                                   \abababababababababababababababababababababababababababababababababababababababab\
                                   \abababababababababababababababababababab" or
        striExpr("ab") mult 127 <> "abababababababababababababababababababababababababababababababababababababababab\
                                   \abababababababababababababababababababababababababababababababababababababababab\
                                   \abababababababababababababababababababababababababababababababababababababababab\
                                   \ababababababab" or
        striExpr("ab") mult 128 <> "abababababababababababababababababababababababababababababababababababababababab\
                                   \abababababababababababababababababababababababababababababababababababababababab\
                                   \abababababababababababababababababababababababababababababababababababababababab\
                                   \abababababababab" or
        striExpr("ab") mult 129 <> "abababababababababababababababababababababababababababababababababababababababab\
                                   \abababababababababababababababababababababababababababababababababababababababab\
                                   \abababababababababababababababababababababababababababababababababababababababab\
                                   \ababababababababab" or
        striExpr("ab") mult 150 <> "abababababababababababababababababababababababababababababababababababababababab\
                                   \abababababababababababababababababababababababababababababababababababababababab\
                                   \abababababababababababababababababababababababababababababababababababababababab\
                                   \abababababababababababababababababababababababababababababab" or
        striExpr("ab") mult 200 <> "abababababababababababababababababababababababababababababababababababababababab\
                                   \abababababababababababababababababababababababababababababababababababababababab\
                                   \abababababababababababababababababababababababababababababababababababababababab\
                                   \abababababababababababababababababababababababababababababababababababababababab\
                                   \abababababababababababababababababababababababababababababababababababababababab" or
        striExpr("abc") mult 0 <> "" or
        striExpr("abc") mult 1 <> "abc" or
        striExpr("abc") mult 2 <> "abcabc" or
        striExpr("abc") mult 3 <> "abcabcabc" or
        striExpr("abc") mult 4 <> "abcabcabcabc" or
        striExpr("abc") mult 5 <> "abcabcabcabcabc" or
        striExpr("abc") mult 6 <> "abcabcabcabcabcabc" or
        striExpr("abc") mult 7 <> "abcabcabcabcabcabcabc" or
        striExpr("abc") mult 8 <> "abcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 9 <> "abcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 10 <> "abcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 15 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 16 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 17 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 20 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 25 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 30 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabc" or
        striExpr("abc") mult 31 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabc" or
        striExpr("abc") mult 32 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabc" or
        striExpr("abc") mult 33 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabc" or
        striExpr("abc") mult 35 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 40 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 50 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 60 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabc" or
        striExpr("abc") mult 63 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 64 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 65 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 70 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 80 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 90 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 100 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 127 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 128 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 129 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 150 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult 200 <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                    \abcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abcd") mult 0 <> "" or
        striExpr("abcd") mult 1 <> "abcd" or
        striExpr("abcd") mult 2 <> "abcdabcd" or
        striExpr("abcd") mult 3 <> "abcdabcdabcd" or
        striExpr("abcd") mult 4 <> "abcdabcdabcdabcd" or
        striExpr("abcd") mult 5 <> "abcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 6 <> "abcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 7 <> "abcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 8 <> "abcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 9 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 10 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 15 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 16 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 17 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 20 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 25 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 30 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 31 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 32 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 33 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 35 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 40 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 50 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 60 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 63 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcd" or
        striExpr("abcd") mult 64 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcd" or
        striExpr("abcd") mult 65 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 70 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 80 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 90 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 100 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 127 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 128 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 129 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 150 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult 200 <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                     \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcde") mult 0 <> "" or
        striExpr("abcde") mult 1 <> "abcde" or
        striExpr("abcde") mult 2 <> "abcdeabcde" or
        striExpr("abcde") mult 3 <> "abcdeabcdeabcde" or
        striExpr("abcde") mult 4 <> "abcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 5 <> "abcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 6 <> "abcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 7 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 8 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 9 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 10 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 15 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 16 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 17 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcde" or
        striExpr("abcde") mult 20 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 25 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 30 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 31 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 32 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 33 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcde" or
        striExpr("abcde") mult 35 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcde" or
        striExpr("abcde") mult 40 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 50 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcde" or
        striExpr("abcde") mult 60 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 63 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 64 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 65 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcde" or
        striExpr("abcde") mult 70 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 80 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 90 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 100 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 127 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 128 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 129 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcde" or
        striExpr("abcde") mult 150 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult 200 <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                      \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcdef") mult 0 <> "" or
        striExpr("abcdef") mult 1 <> "abcdef" or
        striExpr("abcdef") mult 2 <> "abcdefabcdef" or
        striExpr("abcdef") mult 3 <> "abcdefabcdefabcdef" or
        striExpr("abcdef") mult 4 <> "abcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult 5 <> "abcdefabcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult 6 <> "abcdefabcdefabcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult 7 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult 8 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult 9 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult 10 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult 15 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                      \abcdefabcdef" or
        striExpr("abcdef") mult 16 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                      \abcdefabcdefabcdef" or
        striExpr("abcdef") mult 17 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                      \abcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult 20 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                      \abcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult 25 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                      \abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult 30 <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                      \abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                      \abcdefabcdefabcdefabcdef" or
        striExpr("abcdefghij") mult 0 <> "" or
        striExpr("abcdefghij") mult 1 <> "abcdefghij" or
        striExpr("abcdefghij") mult 2 <> "abcdefghijabcdefghij" or
        striExpr("abcdefghij") mult 3 <> "abcdefghijabcdefghijabcdefghij" or
        striExpr("abcdefghij") mult 4 <> "abcdefghijabcdefghijabcdefghijabcdefghij" or
        striExpr("abcdefghij") mult 5 <> "abcdefghijabcdefghijabcdefghijabcdefghijabcdefghij" or
        striExpr("abcdefghij") mult 6 <> "abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij" or
        striExpr("abcdefghij") mult 10 <> "abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij" then
      writeln(" ***** STRING mult integer does not work correct.");
      okay := FALSE;
    end if;

    if  "" mult intExpr(0) <> "" or
        "" mult intExpr(1) <> "" or
        "" mult intExpr(2) <> "" or
        "" mult intExpr(3) <> "" or
        "" mult intExpr(4) <> "" or
        "" mult intExpr(5) <> "" or
        "" mult intExpr(6) <> "" or
        "" mult intExpr(10) <> "" or
        "" mult intExpr(50) <> "" or
        "" mult intExpr(100) <> "" or
        "" mult intExpr(1000) <> "" or
        "" mult intExpr(10000) <> "" or
        "" mult intExpr(100000) <> "" or
        "" mult intExpr(1000000) <> "" or
        "" mult intExpr(10000000) <> "" or
        "" mult intExpr(100000000) <> "" or
        "" mult intExpr(1000000000) <> "" or
        "a" mult intExpr(0) <> "" or
        "a" mult intExpr(1) <> "a" or
        "a" mult intExpr(2) <> "aa" or
        "a" mult intExpr(3) <> "aaa" or
        "a" mult intExpr(4) <> "aaaa" or
        "a" mult intExpr(5) <> "aaaaa" or
        "a" mult intExpr(6) <> "aaaaaa" or
        "a" mult intExpr(7) <> "aaaaaaa" or
        "a" mult intExpr(8) <> "aaaaaaaa" or
        "a" mult intExpr(9) <> "aaaaaaaaa" or
        "a" mult intExpr(10) <> "aaaaaaaaaa" or
        "a" mult intExpr(15) <> "aaaaaaaaaaaaaaa" or
        "a" mult intExpr(16) <> "aaaaaaaaaaaaaaaa" or
        "a" mult intExpr(17) <> "aaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(20) <> "aaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(25) <> "aaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(30) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(31) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(32) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(33) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(35) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(40) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(50) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(60) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(63) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(64) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(65) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(70) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(80) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(90) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                \aaaaaaaaaa" or
        "a" mult intExpr(100) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                 \aaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(127) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                 \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(128) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                 \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(129) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                 \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(150) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                 \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "a" mult intExpr(200) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                 \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                 \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        "ab" mult intExpr(0) <> "" or
        "ab" mult intExpr(1) <> "ab" or
        "ab" mult intExpr(2) <> "abab" or
        "ab" mult intExpr(3) <> "ababab" or
        "ab" mult intExpr(4) <> "abababab" or
        "ab" mult intExpr(5) <> "ababababab" or
        "ab" mult intExpr(6) <> "abababababab" or
        "ab" mult intExpr(7) <> "ababababababab" or
        "ab" mult intExpr(8) <> "abababababababab" or
        "ab" mult intExpr(9) <> "ababababababababab" or
        "ab" mult intExpr(10) <> "abababababababababab" or
        "ab" mult intExpr(15) <> "ababababababababababababababab" or
        "ab" mult intExpr(16) <> "abababababababababababababababab" or
        "ab" mult intExpr(17) <> "ababababababababababababababababab" or
        "ab" mult intExpr(20) <> "abababababababababababababababababababab" or
        "ab" mult intExpr(25) <> "ababababababababababababababababababababababababab" or
        "ab" mult intExpr(30) <> "abababababababababababababababababababababababababababababab" or
        "ab" mult intExpr(31) <> "ababababababababababababababababababababababababababababababab" or
        "ab" mult intExpr(32) <> "abababababababababababababababababababababababababababababababab" or
        "ab" mult intExpr(33) <> "ababababababababababababababababababababababababababababababababab" or
        "ab" mult intExpr(35) <> "ababababababababababababababababababababababababababababababababababab" or
        "ab" mult intExpr(40) <> "abababababababababababababababababababababababababababababababababababababababab" or
        "ab" mult intExpr(50) <> "abababababababababababababababababababababababababababababababababababababababab\
                                 \abababababababababab" or
        "ab" mult intExpr(60) <> "abababababababababababababababababababababababababababababababababababababababab\
                                 \abababababababababababababababababababab" or
        "ab" mult intExpr(63) <> "abababababababababababababababababababababababababababababababababababababababab\
                                 \ababababababababababababababababababababababab" or
        "ab" mult intExpr(64) <> "abababababababababababababababababababababababababababababababababababababababab\
                                 \abababababababababababababababababababababababab" or
        "ab" mult intExpr(65) <> "abababababababababababababababababababababababababababababababababababababababab\
                                 \ababababababababababababababababababababababababab" or
        "ab" mult intExpr(70) <> "abababababababababababababababababababababababababababababababababababababababab\
                                 \abababababababababababababababababababababababababababababab" or
        "ab" mult intExpr(80) <> "abababababababababababababababababababababababababababababababababababababababab\
                                 \abababababababababababababababababababababababababababababababababababababababab" or
        "ab" mult intExpr(90) <> "abababababababababababababababababababababababababababababababababababababababab\
                                 \abababababababababababababababababababababababababababababababababababababababab\
                                 \abababababababababab" or
        "ab" mult intExpr(100) <> "abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababab" or
        "ab" mult intExpr(127) <> "abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababababababababababababababababababababababab\
                                  \ababababababab" or
        "ab" mult intExpr(128) <> "abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababab" or
        "ab" mult intExpr(129) <> "abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababababababababababababababababababababababab\
                                  \ababababababababab" or
        "ab" mult intExpr(150) <> "abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababababababababababababab" or
        "ab" mult intExpr(200) <> "abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababababababababababababababababababababababab\
                                  \abababababababababababababababababababababababababababababababababababababababab" or
        "abc" mult intExpr(0) <> "" or
        "abc" mult intExpr(1) <> "abc" or
        "abc" mult intExpr(2) <> "abcabc" or
        "abc" mult intExpr(3) <> "abcabcabc" or
        "abc" mult intExpr(4) <> "abcabcabcabc" or
        "abc" mult intExpr(5) <> "abcabcabcabcabc" or
        "abc" mult intExpr(6) <> "abcabcabcabcabcabc" or
        "abc" mult intExpr(7) <> "abcabcabcabcabcabcabc" or
        "abc" mult intExpr(8) <> "abcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(9) <> "abcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(10) <> "abcabcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(15) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(16) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(17) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(20) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(25) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(30) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabc" or
        "abc" mult intExpr(31) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabc" or
        "abc" mult intExpr(32) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabc" or
        "abc" mult intExpr(33) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabc" or
        "abc" mult intExpr(35) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(40) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(50) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(60) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabc" or
        "abc" mult intExpr(63) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(64) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(65) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(70) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(80) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(90) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                  \abcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(100) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(127) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(128) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(129) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(150) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        "abc" mult intExpr(200) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                   \abcabcabcabcabcabcabcabcabcabcabc" or
        "abcd" mult intExpr(0) <> "" or
        "abcd" mult intExpr(1) <> "abcd" or
        "abcd" mult intExpr(2) <> "abcdabcd" or
        "abcd" mult intExpr(3) <> "abcdabcdabcd" or
        "abcd" mult intExpr(4) <> "abcdabcdabcdabcd" or
        "abcd" mult intExpr(5) <> "abcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(6) <> "abcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(7) <> "abcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(8) <> "abcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(9) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(10) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(15) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(16) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(17) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(20) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(25) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(30) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(31) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(32) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(33) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(35) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(40) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(50) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(60) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(63) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcd" or
        "abcd" mult intExpr(64) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcd" or
        "abcd" mult intExpr(65) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(70) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(80) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(90) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                   \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(100) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(127) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(128) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(129) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(150) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcd" mult intExpr(200) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                    \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        "abcde" mult intExpr(0) <> "" or
        "abcde" mult intExpr(1) <> "abcde" or
        "abcde" mult intExpr(2) <> "abcdeabcde" or
        "abcde" mult intExpr(3) <> "abcdeabcdeabcde" or
        "abcde" mult intExpr(4) <> "abcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(5) <> "abcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(6) <> "abcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(7) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(8) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(9) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(10) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(15) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(16) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(17) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcde" or
        "abcde" mult intExpr(20) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(25) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(30) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(31) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(32) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(33) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcde" or
        "abcde" mult intExpr(35) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcde" or
        "abcde" mult intExpr(40) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(50) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcde" or
        "abcde" mult intExpr(60) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(63) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(64) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(65) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcde" or
        "abcde" mult intExpr(70) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(80) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(90) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                    \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(100) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(127) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(128) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(129) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcde" or
        "abcde" mult intExpr(150) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcde" or
        "abcde" mult intExpr(200) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                     \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        "abcdef" mult intExpr(0) <> "" or
        "abcdef" mult intExpr(1) <> "abcdef" or
        "abcdef" mult intExpr(2) <> "abcdefabcdef" or
        "abcdef" mult intExpr(3) <> "abcdefabcdefabcdef" or
        "abcdef" mult intExpr(4) <> "abcdefabcdefabcdefabcdef" or
        "abcdef" mult intExpr(5) <> "abcdefabcdefabcdefabcdefabcdef" or
        "abcdef" mult intExpr(6) <> "abcdefabcdefabcdefabcdefabcdefabcdef" or
        "abcdef" mult intExpr(7) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        "abcdef" mult intExpr(8) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        "abcdef" mult intExpr(9) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        "abcdef" mult intExpr(10) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        "abcdef" mult intExpr(15) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                     \abcdefabcdef" or
        "abcdef" mult intExpr(16) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                     \abcdefabcdefabcdef" or
        "abcdef" mult intExpr(17) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                     \abcdefabcdefabcdefabcdef" or
        "abcdef" mult intExpr(20) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                     \abcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        "abcdef" mult intExpr(25) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                     \abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        "abcdef" mult intExpr(30) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                     \abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                     \abcdefabcdefabcdefabcdef" or
        "abcdefghij" mult intExpr(0) <> "" or
        "abcdefghij" mult intExpr(1) <> "abcdefghij" or
        "abcdefghij" mult intExpr(2) <> "abcdefghijabcdefghij" or
        "abcdefghij" mult intExpr(3) <> "abcdefghijabcdefghijabcdefghij" or
        "abcdefghij" mult intExpr(4) <> "abcdefghijabcdefghijabcdefghijabcdefghij" or
        "abcdefghij" mult intExpr(5) <> "abcdefghijabcdefghijabcdefghijabcdefghijabcdefghij" or
        "abcdefghij" mult intExpr(6) <> "abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij" or
        "abcdefghij" mult intExpr(10) <> "abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij" then
      writeln(" ***** STRING mult integer does not work correct.");
      okay := FALSE;
    end if;

    if  striExpr("") mult intExpr(0) <> "" or
        striExpr("") mult intExpr(1) <> "" or
        striExpr("") mult intExpr(2) <> "" or
        striExpr("") mult intExpr(3) <> "" or
        striExpr("") mult intExpr(4) <> "" or
        striExpr("") mult intExpr(5) <> "" or
        striExpr("") mult intExpr(6) <> "" or
        striExpr("") mult intExpr(10) <> "" or
        striExpr("") mult intExpr(50) <> "" or
        striExpr("") mult intExpr(100) <> "" or
        striExpr("") mult intExpr(1000) <> "" or
        striExpr("") mult intExpr(10000) <> "" or
        striExpr("") mult intExpr(100000) <> "" or
        striExpr("") mult intExpr(1000000) <> "" or
        striExpr("") mult intExpr(10000000) <> "" or
        striExpr("") mult intExpr(100000000) <> "" or
        striExpr("") mult intExpr(1000000000) <> "" or
        striExpr("a") mult intExpr(0) <> "" or
        striExpr("a") mult intExpr(1) <> "a" or
        striExpr("a") mult intExpr(2) <> "aa" or
        striExpr("a") mult intExpr(3) <> "aaa" or
        striExpr("a") mult intExpr(4) <> "aaaa" or
        striExpr("a") mult intExpr(5) <> "aaaaa" or
        striExpr("a") mult intExpr(6) <> "aaaaaa" or
        striExpr("a") mult intExpr(7) <> "aaaaaaa" or
        striExpr("a") mult intExpr(8) <> "aaaaaaaa" or
        striExpr("a") mult intExpr(9) <> "aaaaaaaaa" or
        striExpr("a") mult intExpr(10) <> "aaaaaaaaaa" or
        striExpr("a") mult intExpr(15) <> "aaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(16) <> "aaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(17) <> "aaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(20) <> "aaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(25) <> "aaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(30) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(31) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(32) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(33) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(35) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(40) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(50) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(60) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(63) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(64) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(65) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(70) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(80) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(90) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                          \aaaaaaaaaa" or
        striExpr("a") mult intExpr(100) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                           \aaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(127) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                           \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(128) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                           \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(129) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                           \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(150) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                           \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("a") mult intExpr(200) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                           \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                           \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr("ab") mult intExpr(0) <> "" or
        striExpr("ab") mult intExpr(1) <> "ab" or
        striExpr("ab") mult intExpr(2) <> "abab" or
        striExpr("ab") mult intExpr(3) <> "ababab" or
        striExpr("ab") mult intExpr(4) <> "abababab" or
        striExpr("ab") mult intExpr(5) <> "ababababab" or
        striExpr("ab") mult intExpr(6) <> "abababababab" or
        striExpr("ab") mult intExpr(7) <> "ababababababab" or
        striExpr("ab") mult intExpr(8) <> "abababababababab" or
        striExpr("ab") mult intExpr(9) <> "ababababababababab" or
        striExpr("ab") mult intExpr(10) <> "abababababababababab" or
        striExpr("ab") mult intExpr(15) <> "ababababababababababababababab" or
        striExpr("ab") mult intExpr(16) <> "abababababababababababababababab" or
        striExpr("ab") mult intExpr(17) <> "ababababababababababababababababab" or
        striExpr("ab") mult intExpr(20) <> "abababababababababababababababababababab" or
        striExpr("ab") mult intExpr(25) <> "ababababababababababababababababababababababababab" or
        striExpr("ab") mult intExpr(30) <> "abababababababababababababababababababababababababababababab" or
        striExpr("ab") mult intExpr(31) <> "ababababababababababababababababababababababababababababababab" or
        striExpr("ab") mult intExpr(32) <> "abababababababababababababababababababababababababababababababab" or
        striExpr("ab") mult intExpr(33) <> "ababababababababababababababababababababababababababababababababab" or
        striExpr("ab") mult intExpr(35) <> "ababababababababababababababababababababababababababababababababababab" or
        striExpr("ab") mult intExpr(40) <> "abababababababababababababababababababababababababababababababababababababababab" or
        striExpr("ab") mult intExpr(50) <> "abababababababababababababababababababababababababababababababababababababababab\
                                           \abababababababababab" or
        striExpr("ab") mult intExpr(60) <> "abababababababababababababababababababababababababababababababababababababababab\
                                           \abababababababababababababababababababab" or
        striExpr("ab") mult intExpr(63) <> "abababababababababababababababababababababababababababababababababababababababab\
                                           \ababababababababababababababababababababababab" or
        striExpr("ab") mult intExpr(64) <> "abababababababababababababababababababababababababababababababababababababababab\
                                           \abababababababababababababababababababababababab" or
        striExpr("ab") mult intExpr(65) <> "abababababababababababababababababababababababababababababababababababababababab\
                                           \ababababababababababababababababababababababababab" or
        striExpr("ab") mult intExpr(70) <> "abababababababababababababababababababababababababababababababababababababababab\
                                           \abababababababababababababababababababababababababababababab" or
        striExpr("ab") mult intExpr(80) <> "abababababababababababababababababababababababababababababababababababababababab\
                                           \abababababababababababababababababababababababababababababababababababababababab" or
        striExpr("ab") mult intExpr(90) <> "abababababababababababababababababababababababababababababababababababababababab\
                                           \abababababababababababababababababababababababababababababababababababababababab\
                                           \abababababababababab" or
        striExpr("ab") mult intExpr(100) <> "abababababababababababababababababababababababababababababababababababababababab\
                                            \abababababababababababababababababababababababababababababababababababababababab\
                                            \abababababababababababababababababababab" or
        striExpr("ab") mult intExpr(127) <> "abababababababababababababababababababababababababababababababababababababababab\
                                            \abababababababababababababababababababababababababababababababababababababababab\
                                            \abababababababababababababababababababababababababababababababababababababababab\
                                            \ababababababab" or
        striExpr("ab") mult intExpr(128) <> "abababababababababababababababababababababababababababababababababababababababab\
                                            \abababababababababababababababababababababababababababababababababababababababab\
                                            \abababababababababababababababababababababababababababababababababababababababab\
                                            \abababababababab" or
        striExpr("ab") mult intExpr(129) <> "abababababababababababababababababababababababababababababababababababababababab\
                                            \abababababababababababababababababababababababababababababababababababababababab\
                                            \abababababababababababababababababababababababababababababababababababababababab\
                                            \ababababababababab" or
        striExpr("ab") mult intExpr(150) <> "abababababababababababababababababababababababababababababababababababababababab\
                                            \abababababababababababababababababababababababababababababababababababababababab\
                                            \abababababababababababababababababababababababababababababababababababababababab\
                                            \abababababababababababababababababababababababababababababab" or
        striExpr("ab") mult intExpr(200) <> "abababababababababababababababababababababababababababababababababababababababab\
                                            \abababababababababababababababababababababababababababababababababababababababab\
                                            \abababababababababababababababababababababababababababababababababababababababab\
                                            \abababababababababababababababababababababababababababababababababababababababab\
                                            \abababababababababababababababababababababababababababababababababababababababab" or
        striExpr("abc") mult intExpr(0) <> "" or
        striExpr("abc") mult intExpr(1) <> "abc" or
        striExpr("abc") mult intExpr(2) <> "abcabc" or
        striExpr("abc") mult intExpr(3) <> "abcabcabc" or
        striExpr("abc") mult intExpr(4) <> "abcabcabcabc" or
        striExpr("abc") mult intExpr(5) <> "abcabcabcabcabc" or
        striExpr("abc") mult intExpr(6) <> "abcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(7) <> "abcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(8) <> "abcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(9) <> "abcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(10) <> "abcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(15) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(16) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(17) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(20) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(25) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(30) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabc" or
        striExpr("abc") mult intExpr(31) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabc" or
        striExpr("abc") mult intExpr(32) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabc" or
        striExpr("abc") mult intExpr(33) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(35) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(40) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(50) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(60) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(63) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(64) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(65) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(70) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(80) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(90) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                            \abcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(100) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(127) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(128) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(129) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(150) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abc") mult intExpr(200) <> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc\
                                             \abcabcabcabcabcabcabcabcabcabcabc" or
        striExpr("abcd") mult intExpr(0) <> "" or
        striExpr("abcd") mult intExpr(1) <> "abcd" or
        striExpr("abcd") mult intExpr(2) <> "abcdabcd" or
        striExpr("abcd") mult intExpr(3) <> "abcdabcdabcd" or
        striExpr("abcd") mult intExpr(4) <> "abcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(5) <> "abcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(6) <> "abcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(7) <> "abcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(8) <> "abcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(9) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(10) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(15) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(16) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(17) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(20) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(25) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(30) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(31) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(32) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(33) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(35) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(40) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(50) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(60) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(63) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcd" or
        striExpr("abcd") mult intExpr(64) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(65) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(70) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(80) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(90) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                             \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(100) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(127) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(128) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(129) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(150) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcd") mult intExpr(200) <> "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\
                                              \abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" or
        striExpr("abcde") mult intExpr(0) <> "" or
        striExpr("abcde") mult intExpr(1) <> "abcde" or
        striExpr("abcde") mult intExpr(2) <> "abcdeabcde" or
        striExpr("abcde") mult intExpr(3) <> "abcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(4) <> "abcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(5) <> "abcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(6) <> "abcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(7) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(8) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(9) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(10) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(15) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(16) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(17) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcde" or
        striExpr("abcde") mult intExpr(20) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(25) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(30) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(31) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(32) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(33) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcde" or
        striExpr("abcde") mult intExpr(35) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(40) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(50) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcde" or
        striExpr("abcde") mult intExpr(60) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(63) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(64) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(65) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcde" or
        striExpr("abcde") mult intExpr(70) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(80) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(90) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                              \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(100) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(127) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(128) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(129) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcde" or
        striExpr("abcde") mult intExpr(150) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcde") mult intExpr(200) <> "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\
                                               \abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde" or
        striExpr("abcdef") mult intExpr(0) <> "" or
        striExpr("abcdef") mult intExpr(1) <> "abcdef" or
        striExpr("abcdef") mult intExpr(2) <> "abcdefabcdef" or
        striExpr("abcdef") mult intExpr(3) <> "abcdefabcdefabcdef" or
        striExpr("abcdef") mult intExpr(4) <> "abcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult intExpr(5) <> "abcdefabcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult intExpr(6) <> "abcdefabcdefabcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult intExpr(7) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult intExpr(8) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult intExpr(9) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult intExpr(10) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult intExpr(15) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                               \abcdefabcdef" or
        striExpr("abcdef") mult intExpr(16) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                               \abcdefabcdefabcdef" or
        striExpr("abcdef") mult intExpr(17) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                               \abcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult intExpr(20) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                               \abcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult intExpr(25) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                               \abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef" or
        striExpr("abcdef") mult intExpr(30) <> "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                               \abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\
                                               \abcdefabcdefabcdefabcdef" or
        striExpr("abcdefghij") mult intExpr(0) <> "" or
        striExpr("abcdefghij") mult intExpr(1) <> "abcdefghij" or
        striExpr("abcdefghij") mult intExpr(2) <> "abcdefghijabcdefghij" or
        striExpr("abcdefghij") mult intExpr(3) <> "abcdefghijabcdefghijabcdefghij" or
        striExpr("abcdefghij") mult intExpr(4) <> "abcdefghijabcdefghijabcdefghijabcdefghij" or
        striExpr("abcdefghij") mult intExpr(5) <> "abcdefghijabcdefghijabcdefghijabcdefghijabcdefghij" or
        striExpr("abcdefghij") mult intExpr(6) <> "abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij" or
        striExpr("abcdefghij") mult intExpr(10) <> "abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij" then
      writeln(" ***** STRING mult integer does not work correct.");
      okay := FALSE;
    end if;

    if  str('a') mult 0 <> "" or
        str('a') mult 1 <> "a" or
        str('a') mult 2 <> "aa" or
        str('a') mult 3 <> "aaa" or
        str('a') mult 4 <> "aaaa" or
        str('a') mult 5 <> "aaaaa" or
        str('a') mult 6 <> "aaaaaa" or
        str('a') mult 7 <> "aaaaaaa" or
        str('a') mult 8 <> "aaaaaaaa" or
        str('a') mult 9 <> "aaaaaaaaa" or
        str('a') mult 10 <> "aaaaaaaaaa" or
        str('a') mult 15 <> "aaaaaaaaaaaaaaa" or
        str('a') mult 16 <> "aaaaaaaaaaaaaaaa" or
        str('a') mult 17 <> "aaaaaaaaaaaaaaaaa" or
        str('a') mult 20 <> "aaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 25 <> "aaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 30 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 31 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 32 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 33 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 35 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 40 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 50 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 60 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 63 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 64 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 65 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 70 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 80 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 90 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                            \aaaaaaaaaa" or
        str('a') mult 100 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                             \aaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 127 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                             \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 128 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                             \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 129 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                             \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 150 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                             \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult 200 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                             \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                             \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" then
      writeln(" ***** str(CHAR) mult integer does not work correct.");
      okay := FALSE;
    end if;

    if  striExpr(str('a')) mult 0 <> "" or
        striExpr(str('a')) mult 1 <> "a" or
        striExpr(str('a')) mult 2 <> "aa" or
        striExpr(str('a')) mult 3 <> "aaa" or
        striExpr(str('a')) mult 4 <> "aaaa" or
        striExpr(str('a')) mult 5 <> "aaaaa" or
        striExpr(str('a')) mult 6 <> "aaaaaa" or
        striExpr(str('a')) mult 7 <> "aaaaaaa" or
        striExpr(str('a')) mult 8 <> "aaaaaaaa" or
        striExpr(str('a')) mult 9 <> "aaaaaaaaa" or
        striExpr(str('a')) mult 10 <> "aaaaaaaaaa" or
        striExpr(str('a')) mult 15 <> "aaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 16 <> "aaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 17 <> "aaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 20 <> "aaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 25 <> "aaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 30 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 31 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 32 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 33 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 35 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 40 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 50 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 60 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 63 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 64 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 65 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 70 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 80 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 90 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                      \aaaaaaaaaa" or
        striExpr(str('a')) mult 100 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                       \aaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 127 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                       \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 128 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                       \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 129 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                       \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 150 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                       \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult 200 <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                       \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                       \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" then
      writeln(" ***** str(CHAR) mult integer does not work correct.");
      okay := FALSE;
    end if;

    if  str('a') mult intExpr(0) <> "" or
        str('a') mult intExpr(1) <> "a" or
        str('a') mult intExpr(2) <> "aa" or
        str('a') mult intExpr(3) <> "aaa" or
        str('a') mult intExpr(4) <> "aaaa" or
        str('a') mult intExpr(5) <> "aaaaa" or
        str('a') mult intExpr(6) <> "aaaaaa" or
        str('a') mult intExpr(7) <> "aaaaaaa" or
        str('a') mult intExpr(8) <> "aaaaaaaa" or
        str('a') mult intExpr(9) <> "aaaaaaaaa" or
        str('a') mult intExpr(10) <> "aaaaaaaaaa" or
        str('a') mult intExpr(15) <> "aaaaaaaaaaaaaaa" or
        str('a') mult intExpr(16) <> "aaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(17) <> "aaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(20) <> "aaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(25) <> "aaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(30) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(31) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(32) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(33) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(35) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(40) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(50) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(60) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(63) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(64) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(65) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(70) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(80) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(90) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                     \aaaaaaaaaa" or
        str('a') mult intExpr(100) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                      \aaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(127) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                      \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(128) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                      \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(129) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                      \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(150) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                      \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        str('a') mult intExpr(200) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                      \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                      \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" then
      writeln(" ***** str(CHAR) mult integer does not work correct.");
      okay := FALSE;
    end if;

    if  striExpr(str('a')) mult intExpr(0) <> "" or
        striExpr(str('a')) mult intExpr(1) <> "a" or
        striExpr(str('a')) mult intExpr(2) <> "aa" or
        striExpr(str('a')) mult intExpr(3) <> "aaa" or
        striExpr(str('a')) mult intExpr(4) <> "aaaa" or
        striExpr(str('a')) mult intExpr(5) <> "aaaaa" or
        striExpr(str('a')) mult intExpr(6) <> "aaaaaa" or
        striExpr(str('a')) mult intExpr(7) <> "aaaaaaa" or
        striExpr(str('a')) mult intExpr(8) <> "aaaaaaaa" or
        striExpr(str('a')) mult intExpr(9) <> "aaaaaaaaa" or
        striExpr(str('a')) mult intExpr(10) <> "aaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(15) <> "aaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(16) <> "aaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(17) <> "aaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(20) <> "aaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(25) <> "aaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(30) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(31) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(32) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(33) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(35) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(40) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(50) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(60) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(63) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(64) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(65) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(70) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(80) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(90) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                               \aaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(100) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                                \aaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(127) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                                \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(128) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                                \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(129) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                                \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(150) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                                \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" or
        striExpr(str('a')) mult intExpr(200) <> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                                \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
                                                \aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" then
      writeln(" ***** str(CHAR) mult integer does not work correct.");
      okay := FALSE;
    end if;

    if  "\16#1234;" mult 0 <> "" or
        "\16#1234;" mult 1 <> "\16#1234;" or
        "\16#1234;" mult 2 <> "\16#1234;\16#1234;" or
        "\16#1234;" mult 3 <> "\16#1234;\16#1234;\16#1234;" or
        "\16#1234;" mult 4 <> "\16#1234;\16#1234;\16#1234;\16#1234;" or
        "\16#1234;" mult 5 <> "\16#1234;\16#1234;\16#1234;\16#1234;\16#1234;" or
        "\16#1234;" mult 6 <> "\16#1234;\16#1234;\16#1234;\16#1234;\16#1234;\16#1234;" or
        "\16#FECB;" mult 0 <> "" or
        "\16#FECB;" mult 1 <> "\16#FECB;" or
        "\16#FECB;" mult 2 <> "\16#FECB;\16#FECB;" or
        "\16#FECB;" mult 3 <> "\16#FECB;\16#FECB;\16#FECB;" or
        "\16#FECB;" mult 4 <> "\16#FECB;\16#FECB;\16#FECB;\16#FECB;" or
        "\16#FECB;" mult 5 <> "\16#FECB;\16#FECB;\16#FECB;\16#FECB;\16#FECB;" or
        "\16#FECB;" mult 6 <> "\16#FECB;\16#FECB;\16#FECB;\16#FECB;\16#FECB;\16#FECB;" or
        "\16#1234;\16#FECB;" mult 0 <> "" or
        "\16#1234;\16#FECB;" mult 1 <> "\16#1234;\16#FECB;" or
        "\16#1234;\16#FECB;" mult 2 <> "\16#1234;\16#FECB;\16#1234;\16#FECB;" or
        "\16#1234;\16#FECB;" mult 3 <> "\16#1234;\16#FECB;\16#1234;\16#FECB;\16#1234;\16#FECB;" or
        "\16#FECB;\16#1234;" mult 0 <> "" or
        "\16#FECB;\16#1234;" mult 1 <> "\16#FECB;\16#1234;" or
        "\16#FECB;\16#1234;" mult 2 <> "\16#FECB;\16#1234;\16#FECB;\16#1234;" or
        "\16#FECB;\16#1234;" mult 3 <> "\16#FECB;\16#1234;\16#FECB;\16#1234;\16#FECB;\16#1234;" then
      writeln(" ***** STRING mult integer does not work correct.");
      okay := FALSE;
    end if;

    if okay then
      writeln("String multiplication works correct.");
    end if;
  end func;


const proc: check_string_ops is func
  local
    var boolean: okay is TRUE;
  begin
    if  ("" lpad -10) <> "" or
        ("" lpad -5) <> "" or
        ("" lpad -2) <> "" or
        ("" lpad -1) <> "" or
        ("" lpad 0) <> "" or
        ("" lpad 1) <> " " or
        ("" lpad 2) <> "  " or
        ("" lpad 5) <> "     " or
        ("" lpad 10) <> "          " or
        ("a" lpad -10) <> "a" or
        ("a" lpad -5) <> "a" or
        ("a" lpad -2) <> "a" or
        ("a" lpad -1) <> "a" or
        ("a" lpad 0) <> "a" or
        ("a" lpad 1) <> "a" or
        ("a" lpad 2) <> " a" or
        ("a" lpad 5) <> "    a" or
        ("a" lpad 10) <> "         a" or
        ("ab" lpad -10) <> "ab" or
        ("ab" lpad -5) <> "ab" or
        ("ab" lpad -2) <> "ab" or
        ("ab" lpad -1) <> "ab" or
        ("ab" lpad 0) <> "ab" or
        ("ab" lpad 1) <> "ab" or
        ("ab" lpad 2) <> "ab" or
        ("ab" lpad 5) <> "   ab" or
        ("ab" lpad 10) <> "        ab" or
        ("abcd" lpad -10) <> "abcd" or
        ("abcd" lpad -5) <> "abcd" or
        ("abcd" lpad -2) <> "abcd" or
        ("abcd" lpad -1) <> "abcd" or
        ("abcd" lpad 0) <> "abcd" or
        ("abcd" lpad 1) <> "abcd" or
        ("abcd" lpad 2) <> "abcd" or
        ("abcd" lpad 5) <> " abcd" or
        ("abcd" lpad 10) <> "      abcd" or
        ("abcde" lpad -10) <> "abcde" or
        ("abcde" lpad -5) <> "abcde" or
        ("abcde" lpad -2) <> "abcde" or
        ("abcde" lpad -1) <> "abcde" or
        ("abcde" lpad 0) <> "abcde" or
        ("abcde" lpad 1) <> "abcde" or
        ("abcde" lpad 2) <> "abcde" or
        ("abcde" lpad 5) <> "abcde" or
        ("abcde" lpad 10) <> "     abcde" or
        ("abcdef" lpad -10) <> "abcdef" or
        ("abcdef" lpad -5) <> "abcdef" or
        ("abcdef" lpad -2) <> "abcdef" or
        ("abcdef" lpad -1) <> "abcdef" or
        ("abcdef" lpad 0) <> "abcdef" or
        ("abcdef" lpad 1) <> "abcdef" or
        ("abcdef" lpad 2) <> "abcdef" or
        ("abcdef" lpad 5) <> "abcdef" or
        ("abcdef" lpad 10) <> "    abcdef" or
        ("abcdefghi" lpad -10) <> "abcdefghi" or
        ("abcdefghi" lpad -5) <> "abcdefghi" or
        ("abcdefghi" lpad -2) <> "abcdefghi" or
        ("abcdefghi" lpad -1) <> "abcdefghi" or
        ("abcdefghi" lpad 0) <> "abcdefghi" or
        ("abcdefghi" lpad 1) <> "abcdefghi" or
        ("abcdefghi" lpad 2) <> "abcdefghi" or
        ("abcdefghi" lpad 5) <> "abcdefghi" or
        ("abcdefghi" lpad 10) <> " abcdefghi" or
        ("abcdefghij" lpad -10) <> "abcdefghij" or
        ("abcdefghij" lpad -5) <> "abcdefghij" or
        ("abcdefghij" lpad -2) <> "abcdefghij" or
        ("abcdefghij" lpad -1) <> "abcdefghij" or
        ("abcdefghij" lpad 0) <> "abcdefghij" or
        ("abcdefghij" lpad 1) <> "abcdefghij" or
        ("abcdefghij" lpad 2) <> "abcdefghij" or
        ("abcdefghij" lpad 5) <> "abcdefghij" or
        ("abcdefghij" lpad 10) <> "abcdefghij" or
        ("abcdefghijk" lpad -10) <> "abcdefghijk" or
        ("abcdefghijk" lpad -5) <> "abcdefghijk" or
        ("abcdefghijk" lpad -2) <> "abcdefghijk" or
        ("abcdefghijk" lpad -1) <> "abcdefghijk" or
        ("abcdefghijk" lpad 0) <> "abcdefghijk" or
        ("abcdefghijk" lpad 1) <> "abcdefghijk" or
        ("abcdefghijk" lpad 2) <> "abcdefghijk" or
        ("abcdefghijk" lpad 5) <> "abcdefghijk" or
        ("abcdefghijk" lpad 10) <> "abcdefghijk" or
        (striExpr("") lpad -10) <> "" or
        (striExpr("") lpad -5) <> "" or
        (striExpr("") lpad -2) <> "" or
        (striExpr("") lpad -1) <> "" or
        (striExpr("") lpad 0) <> "" or
        (striExpr("") lpad 1) <> " " or
        (striExpr("") lpad 2) <> "  " or
        (striExpr("") lpad 5) <> "     " or
        (striExpr("") lpad 10) <> "          " or
        (striExpr("a") lpad -10) <> "a" or
        (striExpr("a") lpad -5) <> "a" or
        (striExpr("a") lpad -2) <> "a" or
        (striExpr("a") lpad -1) <> "a" or
        (striExpr("a") lpad 0) <> "a" or
        (striExpr("a") lpad 1) <> "a" or
        (striExpr("a") lpad 2) <> " a" or
        (striExpr("a") lpad 5) <> "    a" or
        (striExpr("a") lpad 10) <> "         a" or
        (striExpr("ab") lpad -10) <> "ab" or
        (striExpr("ab") lpad -5) <> "ab" or
        (striExpr("ab") lpad -2) <> "ab" or
        (striExpr("ab") lpad -1) <> "ab" or
        (striExpr("ab") lpad 0) <> "ab" or
        (striExpr("ab") lpad 1) <> "ab" or
        (striExpr("ab") lpad 2) <> "ab" or
        (striExpr("ab") lpad 5) <> "   ab" or
        (striExpr("ab") lpad 10) <> "        ab" or
        (striExpr("abcd") lpad -10) <> "abcd" or
        (striExpr("abcd") lpad -5) <> "abcd" or
        (striExpr("abcd") lpad -2) <> "abcd" or
        (striExpr("abcd") lpad -1) <> "abcd" or
        (striExpr("abcd") lpad 0) <> "abcd" or
        (striExpr("abcd") lpad 1) <> "abcd" or
        (striExpr("abcd") lpad 2) <> "abcd" or
        (striExpr("abcd") lpad 5) <> " abcd" or
        (striExpr("abcd") lpad 10) <> "      abcd" or
        (striExpr("abcde") lpad -10) <> "abcde" or
        (striExpr("abcde") lpad -5) <> "abcde" or
        (striExpr("abcde") lpad -2) <> "abcde" or
        (striExpr("abcde") lpad -1) <> "abcde" or
        (striExpr("abcde") lpad 0) <> "abcde" or
        (striExpr("abcde") lpad 1) <> "abcde" or
        (striExpr("abcde") lpad 2) <> "abcde" or
        (striExpr("abcde") lpad 5) <> "abcde" or
        (striExpr("abcde") lpad 10) <> "     abcde" or
        (striExpr("abcdef") lpad -10) <> "abcdef" or
        (striExpr("abcdef") lpad -5) <> "abcdef" or
        (striExpr("abcdef") lpad -2) <> "abcdef" or
        (striExpr("abcdef") lpad -1) <> "abcdef" or
        (striExpr("abcdef") lpad 0) <> "abcdef" or
        (striExpr("abcdef") lpad 1) <> "abcdef" or
        (striExpr("abcdef") lpad 2) <> "abcdef" or
        (striExpr("abcdef") lpad 5) <> "abcdef" or
        (striExpr("abcdef") lpad 10) <> "    abcdef" or
        (striExpr("abcdefghi") lpad -10) <> "abcdefghi" or
        (striExpr("abcdefghi") lpad -5) <> "abcdefghi" or
        (striExpr("abcdefghi") lpad -2) <> "abcdefghi" or
        (striExpr("abcdefghi") lpad -1) <> "abcdefghi" or
        (striExpr("abcdefghi") lpad 0) <> "abcdefghi" or
        (striExpr("abcdefghi") lpad 1) <> "abcdefghi" or
        (striExpr("abcdefghi") lpad 2) <> "abcdefghi" or
        (striExpr("abcdefghi") lpad 5) <> "abcdefghi" or
        (striExpr("abcdefghi") lpad 10) <> " abcdefghi" or
        (striExpr("abcdefghij") lpad -10) <> "abcdefghij" or
        (striExpr("abcdefghij") lpad -5) <> "abcdefghij" or
        (striExpr("abcdefghij") lpad -2) <> "abcdefghij" or
        (striExpr("abcdefghij") lpad -1) <> "abcdefghij" or
        (striExpr("abcdefghij") lpad 0) <> "abcdefghij" or
        (striExpr("abcdefghij") lpad 1) <> "abcdefghij" or
        (striExpr("abcdefghij") lpad 2) <> "abcdefghij" or
        (striExpr("abcdefghij") lpad 5) <> "abcdefghij" or
        (striExpr("abcdefghij") lpad 10) <> "abcdefghij" or
        (striExpr("abcdefghijk") lpad -10) <> "abcdefghijk" or
        (striExpr("abcdefghijk") lpad -5) <> "abcdefghijk" or
        (striExpr("abcdefghijk") lpad -2) <> "abcdefghijk" or
        (striExpr("abcdefghijk") lpad -1) <> "abcdefghijk" or
        (striExpr("abcdefghijk") lpad 0) <> "abcdefghijk" or
        (striExpr("abcdefghijk") lpad 1) <> "abcdefghijk" or
        (striExpr("abcdefghijk") lpad 2) <> "abcdefghijk" or
        (striExpr("abcdefghijk") lpad 5) <> "abcdefghijk" or
        (striExpr("abcdefghijk") lpad 10) <> "abcdefghijk" then
      writeln(" ***** string lpad integer does not work correct.");
      okay := FALSE;
    end if;
    if ("" rpad -10) <> "" or
        ("" rpad -5) <> "" or
        ("" rpad -2) <> "" or
        ("" rpad -1) <> "" or
        ("" rpad 0) <> "" or
        ("" rpad 1) <> " " or
        ("" rpad 2) <> "  " or
        ("" rpad 5) <> "     " or
        ("" rpad 10) <> "          " or
        ("a" rpad -10) <> "a" or
        ("a" rpad -5) <> "a" or
        ("a" rpad -2) <> "a" or
        ("a" rpad -1) <> "a" or
        ("a" rpad 0) <> "a" or
        ("a" rpad 1) <> "a" or
        ("a" rpad 2) <> "a " or
        ("a" rpad 5) <> "a    " or
        ("a" rpad 10) <> "a         " or
        ("ab" rpad -10) <> "ab" or
        ("ab" rpad -5) <> "ab" or
        ("ab" rpad -2) <> "ab" or
        ("ab" rpad -1) <> "ab" or
        ("ab" rpad 0) <> "ab" or
        ("ab" rpad 1) <> "ab" or
        ("ab" rpad 2) <> "ab" or
        ("ab" rpad 5) <> "ab   " or
        ("ab" rpad 10) <> "ab        " or
        ("abcd" rpad -10) <> "abcd" or
        ("abcd" rpad -5) <> "abcd" or
        ("abcd" rpad -2) <> "abcd" or
        ("abcd" rpad -1) <> "abcd" or
        ("abcd" rpad 0) <> "abcd" or
        ("abcd" rpad 1) <> "abcd" or
        ("abcd" rpad 2) <> "abcd" or
        ("abcd" rpad 5) <> "abcd " or
        ("abcd" rpad 10) <> "abcd      " or
        ("abcde" rpad -10) <> "abcde" or
        ("abcde" rpad -5) <> "abcde" or
        ("abcde" rpad -2) <> "abcde" or
        ("abcde" rpad -1) <> "abcde" or
        ("abcde" rpad 0) <> "abcde" or
        ("abcde" rpad 1) <> "abcde" or
        ("abcde" rpad 2) <> "abcde" or
        ("abcde" rpad 5) <> "abcde" or
        ("abcde" rpad 10) <> "abcde     " or
        ("abcdef" rpad -10) <> "abcdef" or
        ("abcdef" rpad -5) <> "abcdef" or
        ("abcdef" rpad -2) <> "abcdef" or
        ("abcdef" rpad -1) <> "abcdef" or
        ("abcdef" rpad 0) <> "abcdef" or
        ("abcdef" rpad 1) <> "abcdef" or
        ("abcdef" rpad 2) <> "abcdef" or
        ("abcdef" rpad 5) <> "abcdef" or
        ("abcdef" rpad 10) <> "abcdef    " or
        ("abcdefghi" rpad -10) <> "abcdefghi" or
        ("abcdefghi" rpad -5) <> "abcdefghi" or
        ("abcdefghi" rpad -2) <> "abcdefghi" or
        ("abcdefghi" rpad -1) <> "abcdefghi" or
        ("abcdefghi" rpad 0) <> "abcdefghi" or
        ("abcdefghi" rpad 1) <> "abcdefghi" or
        ("abcdefghi" rpad 2) <> "abcdefghi" or
        ("abcdefghi" rpad 5) <> "abcdefghi" or
        ("abcdefghi" rpad 10) <> "abcdefghi " or
        ("abcdefghij" rpad -10) <> "abcdefghij" or
        ("abcdefghij" rpad -5) <> "abcdefghij" or
        ("abcdefghij" rpad -2) <> "abcdefghij" or
        ("abcdefghij" rpad -1) <> "abcdefghij" or
        ("abcdefghij" rpad 0) <> "abcdefghij" or
        ("abcdefghij" rpad 1) <> "abcdefghij" or
        ("abcdefghij" rpad 2) <> "abcdefghij" or
        ("abcdefghij" rpad 5) <> "abcdefghij" or
        ("abcdefghij" rpad 10) <> "abcdefghij" or
        ("abcdefghijk" rpad -10) <> "abcdefghijk" or
        ("abcdefghijk" rpad -5) <> "abcdefghijk" or
        ("abcdefghijk" rpad -2) <> "abcdefghijk" or
        ("abcdefghijk" rpad -1) <> "abcdefghijk" or
        ("abcdefghijk" rpad 0) <> "abcdefghijk" or
        ("abcdefghijk" rpad 1) <> "abcdefghijk" or
        ("abcdefghijk" rpad 2) <> "abcdefghijk" or
        ("abcdefghijk" rpad 5) <> "abcdefghijk" or
        ("abcdefghijk" rpad 10) <> "abcdefghijk" then
      writeln(" ***** string rpad integer does not work correct.");
      okay := FALSE;
    end if;
    if okay then
      writeln("String operations work correct.");
    end if;
  end func;


const proc: check_string_funcs is func
  local
    var boolean: okay is TRUE;
  begin
    if  pos("",       "") <> 0 or
        pos("a",      "") <> 0 or
        pos("ab",     "") <> 0 or
        pos("abc",    "") <> 0 or
        pos("abcde",  "") <> 0 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba", "") <> 0 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz", "") <> 0 then
      writeln(" ***** pos(STRING, \"\") does not work correct.");
      okay := FALSE;
    end if;
    if  pos("",       "\0;") <> 0 or
        pos("a",      "\0;") <> 0 or
        pos("ab",     "\0;") <> 0 or
        pos("abc",    "\0;") <> 0 or
        pos("abcde",  "\0;") <> 0 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba", "\0;") <> 0 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz", "\0;") <> 0 then
      writeln(" ***** pos(STRING, \"\\0;\") does not work correct.");
      okay := FALSE;
    end if;
    if  pos("\4096;\0;\0;", "\4096;") <> 1 or
        pos("\0;\4096;\0;", "\4096;") <> 2 or
        pos("\0;\0;\4096;", "\4096;") <> 3 then
      writeln(" ***** pos(STRING, \"\\4096;\") does not work correct.");
      okay := FALSE;
    end if;
    if  pos("",       "a") <> 0 or
        pos("b",      "a") <> 0 or
        pos("a",      "a") <> 1 or
        pos("bc",     "a") <> 0 or
        pos("ab",     "a") <> 1 or
        pos("za",     "a") <> 2 or
        pos("aa",     "a") <> 1 or
        pos("bcd",    "a") <> 0 or
        pos("abc",    "a") <> 1 or
        pos("zab",    "a") <> 2 or
        pos("yza",    "a") <> 3 or
        pos("aab",    "a") <> 1 or
        pos("aba",    "a") <> 1 or
        pos("zaa",    "a") <> 2 or
        pos("aaa",    "a") <> 1 or
        pos("bcdef",  "a") <> 0 or
        pos("abcde",  "a") <> 1 or
        pos("zabcd",  "a") <> 2 or
        pos("yzabc",  "a") <> 3 or
        pos("xyzab",  "a") <> 4 or
        pos("wxyza",  "a") <> 5 or
        pos("ababc",  "a") <> 1 or
        pos("zabad",  "a") <> 2 or
        pos("yzaba",  "a") <> 3 or
        pos("yzaab",  "a") <> 3 or
        pos("xyzaa",  "a") <> 4 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba", "a") <> 1 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz", "a") <> 26 then
      writeln(" ***** pos(STRING, \"a\") does not work correct.");
      okay := FALSE;
    end if;
    if  pos("",       "ab") <> 0 or
        pos("c",      "ab") <> 0 or
        pos("a",      "ab") <> 0 or
        pos("b",      "ab") <> 0 or
        pos("cd",     "ab") <> 0 or
        pos("ac",     "ab") <> 0 or
        pos("bc",     "ab") <> 0 or
        pos("ab",     "ab") <> 1 or
        pos("za",     "ab") <> 0 or
        pos("zb",     "ab") <> 0 or
        pos("cde",    "ab") <> 0 or
        pos("bcd",    "ab") <> 0 or
        pos("abc",    "ab") <> 1 or
        pos("zab",    "ab") <> 2 or
        pos("yza",    "ab") <> 0 or
        pos("azy",    "ab") <> 0 or
        pos("baz",    "ab") <> 0 or
        pos("cba",    "ab") <> 0 or
        pos("dcb",    "ab") <> 0 or
        pos("aaa",    "ab") <> 0 or
        pos("bbb",    "ab") <> 0 or
        pos("cdefg",  "ab") <> 0 or
        pos("bcdef",  "ab") <> 0 or
        pos("abcde",  "ab") <> 1 or
        pos("zabcd",  "ab") <> 2 or
        pos("yzabc",  "ab") <> 3 or
        pos("xyzab",  "ab") <> 4 or
        pos("wxyza",  "ab") <> 0 or
        pos("abbbb",  "ab") <> 1 or
        pos("aabbb",  "ab") <> 2 or
        pos("aaabb",  "ab") <> 3 or
        pos("aaaab",  "ab") <> 4 or
        pos("ababc",  "ab") <> 1 or
        pos("abcab",  "ab") <> 1 or
        pos("zabab",  "ab") <> 2 or
        pos("azbaz",  "ab") <> 0 or
        pos("bazba",  "ab") <> 0 or
        pos("cbazb",  "ab") <> 0 or
        pos("aaaaa",  "ab") <> 0 or
        pos("bbbbb",  "ab") <> 0 then
      writeln(" ***** pos(STRING, \"ab\") does not work correct.");
      okay := FALSE;
    end if;
    if  pos("",       "aa") <> 0 or
        pos("b",      "aa") <> 0 or
        pos("a",      "aa") <> 0 or
        pos("bc",     "aa") <> 0 or
        pos("ab",     "aa") <> 0 or
        pos("za",     "aa") <> 0 or
        pos("aa",     "aa") <> 1 or
        pos("bcd",    "aa") <> 0 or
        pos("abc",    "aa") <> 0 or
        pos("zab",    "aa") <> 0 or
        pos("yza",    "aa") <> 0 or
        pos("aab",    "aa") <> 1 or
        pos("zaa",    "aa") <> 2 or
        pos("aaa",    "aa") <> 1 or
        pos("bcdef",  "aa") <> 0 or
        pos("abcde",  "aa") <> 0 or
        pos("zabcd",  "aa") <> 0 or
        pos("yzabc",  "aa") <> 0 or
        pos("xyzab",  "aa") <> 0 or
        pos("wxyza",  "aa") <> 0 or
        pos("ababc",  "aa") <> 0 or
        pos("zabab",  "aa") <> 0 or
        pos("yzaba",  "aa") <> 0 or
        pos("ababa",  "aa") <> 0 or
        pos("aabcd",  "aa") <> 1 or
        pos("zaabc",  "aa") <> 2 or
        pos("yzaab",  "aa") <> 3 or
        pos("xyzaa",  "aa") <> 4 or
        pos("aabab",  "aa") <> 1 or
        pos("zaaba",  "aa") <> 2 or
        pos("aabaa",  "aa") <> 1 or
        pos("aaabc",  "aa") <> 1 or
        pos("zaaab",  "aa") <> 2 or
        pos("yzaaa",  "aa") <> 3 or
        pos("aaaba",  "aa") <> 1 or
        pos("aaaab",  "aa") <> 1 or
        pos("zaaaa",  "aa") <> 2 or
        pos("aaaaa",  "aa") <> 1 then
      writeln(" ***** pos(STRING, \"aa\") does not work correct.");
      okay := FALSE;
    end if;
    if  pos("",       "abc") <> 0 or
        pos("d",      "abc") <> 0 or
        pos("a",      "abc") <> 0 or
        pos("b",      "abc") <> 0 or
        pos("c",      "abc") <> 0 or
        pos("de",     "abc") <> 0 or
        pos("bc",     "abc") <> 0 or
        pos("ab",     "abc") <> 0 or
        pos("za",     "abc") <> 0 or
        pos("cde",    "abc") <> 0 or
        pos("bcd",    "abc") <> 0 or
        pos("abc",    "abc") <> 1 or
        pos("zab",    "abc") <> 0 or
        pos("yza",    "abc") <> 0 or
        pos("azy",    "abc") <> 0 or
        pos("baz",    "abc") <> 0 or
        pos("cba",    "abc") <> 0 or
        pos("dcb",    "abc") <> 0 or
        pos("aaa",    "abc") <> 0 or
        pos("bbb",    "abc") <> 0 or
        pos("ccc",    "abc") <> 0 or
        pos("abcz",   "abc") <> 1 or
        pos("zabc",   "abc") <> 2 or
        pos("aabc",   "abc") <> 2 or
        pos("yzab",   "abc") <> 0 or
        pos("xyza",   "abc") <> 0 or
        pos("cbax",   "abc") <> 0 or
        pos("xcba",   "abc") <> 0 or
        pos("abab",   "abc") <> 0 or
        pos("xaba",   "abc") <> 0 or
        pos("cdefg",  "abc") <> 0 or
        pos("bcdef",  "abc") <> 0 or
        pos("abcde",  "abc") <> 1 or
        pos("zabcd",  "abc") <> 2 or
        pos("yzabc",  "abc") <> 3 or
        pos("xyzab",  "abc") <> 0 or
        pos("wxyza",  "abc") <> 0 or
        pos("bcccc",  "abc") <> 0 or
        pos("abccc",  "abc") <> 1 or
        pos("aabcc",  "abc") <> 2 or
        pos("aaabc",  "abc") <> 3 or
        pos("aaaab",  "abc") <> 0 or
        pos("abcab",  "abc") <> 1 or
        pos("aabcc",  "abc") <> 2 or
        pos("zabab",  "abc") <> 0 or
        pos("azbaz",  "abc") <> 0 or
        pos("bazba",  "abc") <> 0 or
        pos("cbazb",  "abc") <> 0 or
        pos("aaaaa",  "abc") <> 0 or
        pos("bbbbb",  "abc") <> 0 or
        pos("ccccc",  "abc") <> 0 or
        pos("ababababababababababababababababcababababababababab",  "abc") <> 31 or
        pos("bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcabcbcbcbcbcbcbcbcbcbc",  "abc") <> 31 or
        pos("acbacbacbacbacbacbacbacbacbacbabcacbacbacbacbacbacb",  "abc") <> 31 or
        pos("ababababababcbababababcbababababcbababababcbabababa",  "abc") <> 11 then
      writeln(" ***** pos(STRING, \"abc\") does not work correct.");
      okay := FALSE;
    end if;
    if  pos("",       "aba") <> 0 or
        pos("c",      "aba") <> 0 or
        pos("a",      "aba") <> 0 or
        pos("b",      "aba") <> 0 or
        pos("cd",     "aba") <> 0 or
        pos("bc",     "aba") <> 0 or
        pos("ab",     "aba") <> 0 or
        pos("ba",     "aba") <> 0 or
        pos("za",     "aba") <> 0 or
        pos("cde",    "aba") <> 0 or
        pos("bcd",    "aba") <> 0 or
        pos("aba",    "aba") <> 1 or
        pos("abc",    "aba") <> 0 or
        pos("aca",    "aba") <> 0 or
        pos("cba",    "aba") <> 0 or
        pos("bab",    "aba") <> 0 or
        pos("zab",    "aba") <> 0 or
        pos("yza",    "aba") <> 0 or
        pos("azy",    "aba") <> 0 or
        pos("baz",    "aba") <> 0 or
        pos("cba",    "aba") <> 0 or
        pos("dcb",    "aba") <> 0 or
        pos("aaa",    "aba") <> 0 or
        pos("bbb",    "aba") <> 0 or
        pos("ccc",    "aba") <> 0 or
        pos("abaa",   "aba") <> 1 or
        pos("abab",   "aba") <> 1 or
        pos("abaz",   "aba") <> 1 or
        pos("zaba",   "aba") <> 2 or
        pos("aaba",   "aba") <> 2 or
        pos("baba",   "aba") <> 2 or
        pos("azab",   "aba") <> 0 or
        pos("baza",   "aba") <> 0 or
        pos("yzab",   "aba") <> 0 or
        pos("xyza",   "aba") <> 0 or
        pos("cbax",   "aba") <> 0 or
        pos("xcba",   "aba") <> 0 or
        pos("baaa",   "aba") <> 0 or
        pos("aaab",   "aba") <> 0 or
        pos("cdefg",  "aba") <> 0 or
        pos("bcdef",  "aba") <> 0 or
        pos("abacd",  "aba") <> 1 or
        pos("abaaa",  "aba") <> 1 or
        pos("abaab",  "aba") <> 1 or
        pos("ababa",  "aba") <> 1 or
        pos("ababb",  "aba") <> 1 or
        pos("zabac",  "aba") <> 2 or
        pos("aabac",  "aba") <> 2 or
        pos("cabaa",  "aba") <> 2 or
        pos("aabaa",  "aba") <> 2 or
        pos("zabab",  "aba") <> 2 or
        pos("babab",  "aba") <> 2 or
        pos("babac",  "aba") <> 2 or
        pos("yzaba",  "aba") <> 3 or
        pos("aaaba",  "aba") <> 3 or
        pos("baaba",  "aba") <> 3 or
        pos("bbaba",  "aba") <> 3 or
        pos("acaba",  "aba") <> 3 or
        pos("cbaba",  "aba") <> 3 or
        pos("xyzab",  "aba") <> 0 or
        pos("wxyza",  "aba") <> 0 or
        pos("bcccc",  "aba") <> 0 or
        pos("aaaab",  "aba") <> 0 or
        pos("azbaz",  "aba") <> 0 or
        pos("bazba",  "aba") <> 0 or
        pos("cbazb",  "aba") <> 0 or
        pos("abczb",  "aba") <> 0 or
        pos("aaaaa",  "aba") <> 0 or
        pos("bbbbb",  "aba") <> 0 or
        pos("ccccc",  "aba") <> 0 or
        pos("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaa",  "aba") <> 31 or
        pos("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbababbbbbbbbbbbbbbbbbb",  "aba") <> 31 or
        pos("abbabbabbabbabbabbabbabbabbabbababbabbabbabbabbabba",  "aba") <> 31 or
        pos("bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcababcbcbcbcbcbcbcbcbc",  "aba") <> 31 or
        pos("acbacbacbacbacbacbacbacbacbacbabaacbacbacbacbacbacb",  "aba") <> 31 or
        pos("cbabcbabcbababababababababababababababababababababa",  "aba") <> 11 then
      writeln(" ***** pos(STRING, \"aba\") does not work correct.");
      okay := FALSE;
    end if;
    if  pos("",       "", 1) <> 0 or
        pos("",       "", 2) <> 0 or
        pos("",       "", 9) <> 0 or
        pos("a",      "", 1) <> 0 or
        pos("a",      "", 2) <> 0 or
        pos("a",      "", 9) <> 0 or
        pos("ab",     "", 1) <> 0 or
        pos("ab",     "", 2) <> 0 or
        pos("ab",     "", 3) <> 0 or
        pos("ab",     "", 9) <> 0 or
        pos("abc",    "", 1) <> 0 or
        pos("abc",    "", 2) <> 0 or
        pos("abc",    "", 3) <> 0 or
        pos("abc",    "", 4) <> 0 or
        pos("abc",    "", 9) <> 0 or
        pos("abcde",  "", 1) <> 0 or
        pos("abcde",  "", 2) <> 0 or
        pos("abcde",  "", 3) <> 0 or
        pos("abcde",  "", 4) <> 0 or
        pos("abcde",  "", 5) <> 0 or
        pos("abcde",  "", 6) <> 0 or
        pos("abcde",  "", 9) <> 0 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "",  1) <> 0 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "",  2) <> 0 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "",  9) <> 0 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "", 99) <> 0 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "",  1) <> 0 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "",  2) <> 0 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "",  9) <> 0 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "", 99) <> 0 then
      writeln(" ***** pos(STRING, \"\", start) does not work correct.");
      okay := FALSE;
    end if;
    if  pos("",       "a", 1) <> 0 or
        pos("",       "a", 2) <> 0 or
        pos("",       "a", 9) <> 0 or
        pos("b",      "a", 1) <> 0 or
        pos("b",      "a", 2) <> 0 or
        pos("b",      "a", 9) <> 0 or
        pos("a",      "a", 1) <> 1 or
        pos("a",      "a", 2) <> 0 or
        pos("a",      "a", 9) <> 0 or
        pos("bc",     "a", 1) <> 0 or
        pos("bc",     "a", 2) <> 0 or
        pos("bc",     "a", 3) <> 0 or
        pos("bc",     "a", 9) <> 0 or
        pos("ab",     "a", 1) <> 1 or
        pos("ab",     "a", 2) <> 0 or
        pos("ab",     "a", 3) <> 0 or
        pos("ab",     "a", 9) <> 0 or
        pos("za",     "a", 1) <> 2 or
        pos("za",     "a", 2) <> 2 or
        pos("za",     "a", 3) <> 0 or
        pos("za",     "a", 9) <> 0 or
        pos("aa",     "a", 1) <> 1 or
        pos("aa",     "a", 2) <> 2 or
        pos("aa",     "a", 3) <> 0 or
        pos("aa",     "a", 9) <> 0 or
        pos("bcd",    "a", 1) <> 0 or
        pos("bcd",    "a", 2) <> 0 or
        pos("bcd",    "a", 3) <> 0 or
        pos("bcd",    "a", 4) <> 0 or
        pos("bcd",    "a", 9) <> 0 or
        pos("abc",    "a", 1) <> 1 or
        pos("abc",    "a", 2) <> 0 or
        pos("abc",    "a", 3) <> 0 or
        pos("abc",    "a", 4) <> 0 or
        pos("abc",    "a", 9) <> 0 or
        pos("zab",    "a", 1) <> 2 or
        pos("zab",    "a", 2) <> 2 or
        pos("zab",    "a", 3) <> 0 or
        pos("zab",    "a", 4) <> 0 or
        pos("zab",    "a", 9) <> 0 or
        pos("yza",    "a", 1) <> 3 or
        pos("yza",    "a", 2) <> 3 or
        pos("yza",    "a", 3) <> 3 or
        pos("yza",    "a", 4) <> 0 or
        pos("yza",    "a", 9) <> 0 or
        pos("aab",    "a", 1) <> 1 or
        pos("aab",    "a", 2) <> 2 or
        pos("aab",    "a", 3) <> 0 or
        pos("aab",    "a", 4) <> 0 or
        pos("aab",    "a", 9) <> 0 or
        pos("aba",    "a", 1) <> 1 or
        pos("aba",    "a", 2) <> 3 or
        pos("aba",    "a", 3) <> 3 or
        pos("aba",    "a", 4) <> 0 or
        pos("aba",    "a", 9) <> 0 or
        pos("zaa",    "a", 1) <> 2 or
        pos("zaa",    "a", 2) <> 2 or
        pos("zaa",    "a", 3) <> 3 or
        pos("zaa",    "a", 4) <> 0 or
        pos("zaa",    "a", 9) <> 0 or
        pos("aaa",    "a", 1) <> 1 or
        pos("aaa",    "a", 2) <> 2 or
        pos("aaa",    "a", 3) <> 3 or
        pos("aaa",    "a", 4) <> 0 or
        pos("aaa",    "a", 9) <> 0 or
        pos("bcdef",  "a", 1) <> 0 or
        pos("bcdef",  "a", 2) <> 0 or
        pos("bcdef",  "a", 3) <> 0 or
        pos("bcdef",  "a", 4) <> 0 or
        pos("bcdef",  "a", 5) <> 0 or
        pos("bcdef",  "a", 6) <> 0 or
        pos("bcdef",  "a", 9) <> 0 or
        pos("abcde",  "a", 1) <> 1 or
        pos("abcde",  "a", 2) <> 0 or
        pos("abcde",  "a", 3) <> 0 or
        pos("abcde",  "a", 4) <> 0 or
        pos("abcde",  "a", 5) <> 0 or
        pos("abcde",  "a", 6) <> 0 or
        pos("abcde",  "a", 9) <> 0 or
        pos("zabcd",  "a", 1) <> 2 or
        pos("zabcd",  "a", 2) <> 2 or
        pos("zabcd",  "a", 3) <> 0 or
        pos("zabcd",  "a", 4) <> 0 or
        pos("zabcd",  "a", 5) <> 0 or
        pos("zabcd",  "a", 6) <> 0 or
        pos("zabcd",  "a", 9) <> 0 or
        pos("yzabc",  "a", 1) <> 3 or
        pos("yzabc",  "a", 2) <> 3 or
        pos("yzabc",  "a", 3) <> 3 or
        pos("yzabc",  "a", 4) <> 0 or
        pos("yzabc",  "a", 5) <> 0 or
        pos("yzabc",  "a", 6) <> 0 or
        pos("yzabc",  "a", 9) <> 0 or
        pos("xyzab",  "a", 1) <> 4 or
        pos("xyzab",  "a", 2) <> 4 or
        pos("xyzab",  "a", 3) <> 4 or
        pos("xyzab",  "a", 4) <> 4 or
        pos("xyzab",  "a", 5) <> 0 or
        pos("xyzab",  "a", 6) <> 0 or
        pos("xyzab",  "a", 9) <> 0 or
        pos("wxyza",  "a", 1) <> 5 or
        pos("wxyza",  "a", 2) <> 5 or
        pos("wxyza",  "a", 3) <> 5 or
        pos("wxyza",  "a", 4) <> 5 or
        pos("wxyza",  "a", 5) <> 5 or
        pos("wxyza",  "a", 6) <> 0 or
        pos("wxyza",  "a", 9) <> 0 or
        pos("ababc",  "a", 1) <> 1 or
        pos("ababc",  "a", 2) <> 3 or
        pos("ababc",  "a", 3) <> 3 or
        pos("ababc",  "a", 4) <> 0 or
        pos("ababc",  "a", 5) <> 0 or
        pos("ababc",  "a", 6) <> 0 or
        pos("ababc",  "a", 9) <> 0 or
        pos("zabad",  "a", 1) <> 2 or
        pos("zabad",  "a", 2) <> 2 or
        pos("zabad",  "a", 3) <> 4 or
        pos("zabad",  "a", 4) <> 4 or
        pos("zabad",  "a", 5) <> 0 or
        pos("zabad",  "a", 6) <> 0 or
        pos("zabad",  "a", 9) <> 0 or
        pos("yzaba",  "a", 1) <> 3 or
        pos("yzaba",  "a", 2) <> 3 or
        pos("yzaba",  "a", 3) <> 3 or
        pos("yzaba",  "a", 4) <> 5 or
        pos("yzaba",  "a", 5) <> 5 or
        pos("yzaba",  "a", 6) <> 0 or
        pos("yzaba",  "a", 9) <> 0 or
        pos("yzaab",  "a", 1) <> 3 or
        pos("yzaab",  "a", 2) <> 3 or
        pos("yzaab",  "a", 3) <> 3 or
        pos("yzaab",  "a", 4) <> 4 or
        pos("yzaab",  "a", 5) <> 0 or
        pos("yzaab",  "a", 6) <> 0 or
        pos("yzaab",  "a", 9) <> 0 or
        pos("xyzaa",  "a", 1) <> 4 or
        pos("xyzaa",  "a", 2) <> 4 or
        pos("xyzaa",  "a", 3) <> 4 or
        pos("xyzaa",  "a", 4) <> 4 or
        pos("xyzaa",  "a", 5) <> 5 or
        pos("xyzaa",  "a", 6) <> 0 or
        pos("xyzaa",  "a", 9) <> 0 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "a",  1) <>  1 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "a",  2) <> 51 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "a",  9) <> 51 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "a", 50) <> 51 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "a", 51) <> 51 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "a", 52) <>  0 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "a", 99) <>  0 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "a",  1) <> 26 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "a",  2) <> 26 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "a", 25) <> 26 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "a", 26) <> 26 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "a", 27) <>  0 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "a", 99) <>  0 then
      writeln(" ***** pos(STRING, \"a\", start) does not work correct.");
      okay := FALSE;
    end if;
    if  pos("",       "ab", 1) <> 0 or
        pos("",       "ab", 2) <> 0 or
        pos("",       "ab", 9) <> 0 or
        pos("c",      "ab", 1) <> 0 or
        pos("c",      "ab", 2) <> 0 or
        pos("c",      "ab", 9) <> 0 or
        pos("a",      "ab", 1) <> 0 or
        pos("a",      "ab", 2) <> 0 or
        pos("a",      "ab", 9) <> 0 or
        pos("b",      "ab", 1) <> 0 or
        pos("b",      "ab", 2) <> 0 or
        pos("b",      "ab", 9) <> 0 or
        pos("cd",     "ab", 1) <> 0 or
        pos("cd",     "ab", 2) <> 0 or
        pos("cd",     "ab", 3) <> 0 or
        pos("cd",     "ab", 9) <> 0 or
        pos("ac",     "ab", 1) <> 0 or
        pos("ac",     "ab", 2) <> 0 or
        pos("ac",     "ab", 3) <> 0 or
        pos("ac",     "ab", 9) <> 0 or
        pos("bc",     "ab", 1) <> 0 or
        pos("bc",     "ab", 2) <> 0 or
        pos("bc",     "ab", 3) <> 0 or
        pos("bc",     "ab", 9) <> 0 or
        pos("ab",     "ab", 1) <> 1 or
        pos("ab",     "ab", 2) <> 0 or
        pos("ab",     "ab", 3) <> 0 or
        pos("ab",     "ab", 9) <> 0 or
        pos("za",     "ab", 1) <> 0 or
        pos("za",     "ab", 2) <> 0 or
        pos("za",     "ab", 3) <> 0 or
        pos("za",     "ab", 9) <> 0 or
        pos("zb",     "ab", 1) <> 0 or
        pos("zb",     "ab", 2) <> 0 or
        pos("zb",     "ab", 3) <> 0 or
        pos("zb",     "ab", 9) <> 0 or
        pos("cde",    "ab", 1) <> 0 or
        pos("cde",    "ab", 2) <> 0 or
        pos("cde",    "ab", 3) <> 0 or
        pos("cde",    "ab", 4) <> 0 or
        pos("cde",    "ab", 9) <> 0 or
        pos("bcd",    "ab", 1) <> 0 or
        pos("bcd",    "ab", 2) <> 0 or
        pos("bcd",    "ab", 3) <> 0 or
        pos("bcd",    "ab", 4) <> 0 or
        pos("bcd",    "ab", 9) <> 0 or
        pos("abc",    "ab", 1) <> 1 or
        pos("abc",    "ab", 2) <> 0 or
        pos("abc",    "ab", 3) <> 0 or
        pos("abc",    "ab", 4) <> 0 or
        pos("abc",    "ab", 9) <> 0 or
        pos("zab",    "ab", 1) <> 2 or
        pos("zab",    "ab", 2) <> 2 or
        pos("zab",    "ab", 3) <> 0 or
        pos("zab",    "ab", 4) <> 0 or
        pos("zab",    "ab", 9) <> 0 or
        pos("yza",    "ab", 1) <> 0 or
        pos("yza",    "ab", 2) <> 0 or
        pos("yza",    "ab", 3) <> 0 or
        pos("yza",    "ab", 4) <> 0 or
        pos("yza",    "ab", 9) <> 0 or
        pos("azy",    "ab", 1) <> 0 or
        pos("azy",    "ab", 2) <> 0 or
        pos("azy",    "ab", 3) <> 0 or
        pos("azy",    "ab", 4) <> 0 or
        pos("azy",    "ab", 9) <> 0 or
        pos("baz",    "ab", 1) <> 0 or
        pos("baz",    "ab", 2) <> 0 or
        pos("baz",    "ab", 3) <> 0 or
        pos("baz",    "ab", 4) <> 0 or
        pos("baz",    "ab", 9) <> 0 or
        pos("cba",    "ab", 1) <> 0 or
        pos("cba",    "ab", 2) <> 0 or
        pos("cba",    "ab", 3) <> 0 or
        pos("cba",    "ab", 4) <> 0 or
        pos("cba",    "ab", 9) <> 0 or
        pos("dcb",    "ab", 1) <> 0 or
        pos("dcb",    "ab", 2) <> 0 or
        pos("dcb",    "ab", 3) <> 0 or
        pos("dcb",    "ab", 4) <> 0 or
        pos("dcb",    "ab", 9) <> 0 or
        pos("aaa",    "ab", 1) <> 0 or
        pos("aaa",    "ab", 2) <> 0 or
        pos("aaa",    "ab", 3) <> 0 or
        pos("aaa",    "ab", 4) <> 0 or
        pos("aaa",    "ab", 5) <> 0 or
        pos("bbb",    "ab", 1) <> 0 or
        pos("bbb",    "ab", 2) <> 0 or
        pos("bbb",    "ab", 3) <> 0 or
        pos("bbb",    "ab", 4) <> 0 or
        pos("bbb",    "ab", 9) <> 0 or
        pos("cdefg",  "ab", 1) <> 0 or
        pos("cdefg",  "ab", 2) <> 0 or
        pos("cdefg",  "ab", 3) <> 0 or
        pos("cdefg",  "ab", 4) <> 0 or
        pos("cdefg",  "ab", 5) <> 0 or
        pos("cdefg",  "ab", 6) <> 0 or
        pos("cdefg",  "ab", 9) <> 0 or
        pos("bcdef",  "ab", 1) <> 0 or
        pos("bcdef",  "ab", 2) <> 0 or
        pos("bcdef",  "ab", 3) <> 0 or
        pos("bcdef",  "ab", 4) <> 0 or
        pos("bcdef",  "ab", 5) <> 0 or
        pos("bcdef",  "ab", 6) <> 0 or
        pos("bcdef",  "ab", 9) <> 0 or
        pos("abcde",  "ab", 1) <> 1 or
        pos("abcde",  "ab", 2) <> 0 or
        pos("abcde",  "ab", 3) <> 0 or
        pos("abcde",  "ab", 4) <> 0 or
        pos("abcde",  "ab", 5) <> 0 or
        pos("abcde",  "ab", 6) <> 0 or
        pos("abcde",  "ab", 9) <> 0 or
        pos("zabcd",  "ab", 1) <> 2 or
        pos("zabcd",  "ab", 2) <> 2 or
        pos("zabcd",  "ab", 3) <> 0 or
        pos("zabcd",  "ab", 4) <> 0 or
        pos("zabcd",  "ab", 5) <> 0 or
        pos("zabcd",  "ab", 6) <> 0 or
        pos("zabcd",  "ab", 9) <> 0 or
        pos("yzabc",  "ab", 1) <> 3 or
        pos("yzabc",  "ab", 2) <> 3 or
        pos("yzabc",  "ab", 3) <> 3 or
        pos("yzabc",  "ab", 4) <> 0 or
        pos("yzabc",  "ab", 5) <> 0 or
        pos("yzabc",  "ab", 6) <> 0 or
        pos("yzabc",  "ab", 9) <> 0 or
        pos("xyzab",  "ab", 1) <> 4 or
        pos("xyzab",  "ab", 2) <> 4 or
        pos("xyzab",  "ab", 3) <> 4 or
        pos("xyzab",  "ab", 4) <> 4 or
        pos("xyzab",  "ab", 5) <> 0 or
        pos("xyzab",  "ab", 6) <> 0 or
        pos("xyzab",  "ab", 9) <> 0 or
        pos("wxyza",  "ab", 1) <> 0 or
        pos("wxyza",  "ab", 2) <> 0 or
        pos("wxyza",  "ab", 3) <> 0 or
        pos("wxyza",  "ab", 4) <> 0 or
        pos("wxyza",  "ab", 5) <> 0 or
        pos("wxyza",  "ab", 6) <> 0 or
        pos("wxyza",  "ab", 9) <> 0 or
        pos("abbbb",  "ab", 1) <> 1 or
        pos("abbbb",  "ab", 2) <> 0 or
        pos("abbbb",  "ab", 3) <> 0 or
        pos("abbbb",  "ab", 4) <> 0 or
        pos("abbbb",  "ab", 5) <> 0 or
        pos("abbbb",  "ab", 6) <> 0 or
        pos("abbbb",  "ab", 9) <> 0 or
        pos("aabbb",  "ab", 1) <> 2 or
        pos("aabbb",  "ab", 2) <> 2 or
        pos("aabbb",  "ab", 3) <> 0 or
        pos("aabbb",  "ab", 4) <> 0 or
        pos("aabbb",  "ab", 5) <> 0 or
        pos("aabbb",  "ab", 6) <> 0 or
        pos("aabbb",  "ab", 9) <> 0 or
        pos("aaabb",  "ab", 1) <> 3 or
        pos("aaabb",  "ab", 2) <> 3 or
        pos("aaabb",  "ab", 3) <> 3 or
        pos("aaabb",  "ab", 4) <> 0 or
        pos("aaabb",  "ab", 5) <> 0 or
        pos("aaabb",  "ab", 6) <> 0 or
        pos("aaabb",  "ab", 9) <> 0 or
        pos("aaaab",  "ab", 1) <> 4 or
        pos("aaaab",  "ab", 2) <> 4 or
        pos("aaaab",  "ab", 3) <> 4 or
        pos("aaaab",  "ab", 4) <> 4 or
        pos("aaaab",  "ab", 5) <> 0 or
        pos("aaaab",  "ab", 6) <> 0 or
        pos("aaaab",  "ab", 9) <> 0 or
        pos("ababc",  "ab", 1) <> 1 or
        pos("ababc",  "ab", 2) <> 3 or
        pos("ababc",  "ab", 3) <> 3 or
        pos("ababc",  "ab", 4) <> 0 or
        pos("ababc",  "ab", 5) <> 0 or
        pos("ababc",  "ab", 6) <> 0 or
        pos("ababc",  "ab", 9) <> 0 or
        pos("abcab",  "ab", 1) <> 1 or
        pos("abcab",  "ab", 2) <> 4 or
        pos("abcab",  "ab", 3) <> 4 or
        pos("abcab",  "ab", 4) <> 4 or
        pos("abcab",  "ab", 5) <> 0 or
        pos("abcab",  "ab", 6) <> 0 or
        pos("abcab",  "ab", 9) <> 0 or
        pos("zabab",  "ab", 1) <> 2 or
        pos("zabab",  "ab", 2) <> 2 or
        pos("zabab",  "ab", 3) <> 4 or
        pos("zabab",  "ab", 4) <> 4 or
        pos("zabab",  "ab", 5) <> 0 or
        pos("zabab",  "ab", 6) <> 0 or
        pos("zabab",  "ab", 9) <> 0 or
        pos("azbaz",  "ab", 1) <> 0 or
        pos("azbaz",  "ab", 2) <> 0 or
        pos("azbaz",  "ab", 3) <> 0 or
        pos("azbaz",  "ab", 4) <> 0 or
        pos("azbaz",  "ab", 5) <> 0 or
        pos("azbaz",  "ab", 6) <> 0 or
        pos("azbaz",  "ab", 9) <> 0 or
        pos("bazba",  "ab", 1) <> 0 or
        pos("bazba",  "ab", 2) <> 0 or
        pos("bazba",  "ab", 3) <> 0 or
        pos("bazba",  "ab", 4) <> 0 or
        pos("bazba",  "ab", 5) <> 0 or
        pos("bazba",  "ab", 6) <> 0 or
        pos("bazba",  "ab", 9) <> 0 or
        pos("cbazb",  "ab", 1) <> 0 or
        pos("cbazb",  "ab", 2) <> 0 or
        pos("cbazb",  "ab", 3) <> 0 or
        pos("cbazb",  "ab", 4) <> 0 or
        pos("cbazb",  "ab", 5) <> 0 or
        pos("cbazb",  "ab", 6) <> 0 or
        pos("cbazb",  "ab", 9) <> 0 or
        pos("aaaaa",  "ab", 1) <> 0 or
        pos("aaaaa",  "ab", 2) <> 0 or
        pos("aaaaa",  "ab", 3) <> 0 or
        pos("aaaaa",  "ab", 4) <> 0 or
        pos("aaaaa",  "ab", 5) <> 0 or
        pos("aaaaa",  "ab", 6) <> 0 or
        pos("aaaaa",  "ab", 9) <> 0 or
        pos("bbbbb",  "ab", 1) <> 0 or
        pos("bbbbb",  "ab", 2) <> 0 or
        pos("bbbbb",  "ab", 3) <> 0 or
        pos("bbbbb",  "ab", 4) <> 0 or
        pos("bbbbb",  "ab", 5) <> 0 or
        pos("bbbbb",  "ab", 6) <> 0 or
        pos("bbbbb",  "ab", 9) <> 0 then
      writeln(" ***** pos(STRING, \"ab\", start) does not work correct.");
      okay := FALSE;
    end if;
    if  pos("",       "aa", 1) <> 0 or
        pos("",       "aa", 2) <> 0 or
        pos("",       "aa", 9) <> 0 or
        pos("b",      "aa", 1) <> 0 or
        pos("b",      "aa", 2) <> 0 or
        pos("b",      "aa", 9) <> 0 or
        pos("a",      "aa", 1) <> 0 or
        pos("a",      "aa", 2) <> 0 or
        pos("a",      "aa", 9) <> 0 or
        pos("bc",     "aa", 1) <> 0 or
        pos("bc",     "aa", 2) <> 0 or
        pos("bc",     "aa", 3) <> 0 or
        pos("bc",     "aa", 9) <> 0 or
        pos("ab",     "aa", 1) <> 0 or
        pos("ab",     "aa", 2) <> 0 or
        pos("ab",     "aa", 3) <> 0 or
        pos("ab",     "aa", 9) <> 0 or
        pos("za",     "aa", 1) <> 0 or
        pos("za",     "aa", 2) <> 0 or
        pos("za",     "aa", 3) <> 0 or
        pos("za",     "aa", 9) <> 0 or
        pos("aa",     "aa", 1) <> 1 or
        pos("aa",     "aa", 2) <> 0 or
        pos("aa",     "aa", 3) <> 0 or
        pos("aa",     "aa", 9) <> 0 or
        pos("bcd",    "aa", 1) <> 0 or
        pos("bcd",    "aa", 2) <> 0 or
        pos("bcd",    "aa", 3) <> 0 or
        pos("bcd",    "aa", 4) <> 0 or
        pos("bcd",    "aa", 9) <> 0 or
        pos("abc",    "aa", 1) <> 0 or
        pos("abc",    "aa", 2) <> 0 or
        pos("abc",    "aa", 3) <> 0 or
        pos("abc",    "aa", 4) <> 0 or
        pos("abc",    "aa", 9) <> 0 or
        pos("zab",    "aa", 1) <> 0 or
        pos("zab",    "aa", 2) <> 0 or
        pos("zab",    "aa", 3) <> 0 or
        pos("zab",    "aa", 4) <> 0 or
        pos("zab",    "aa", 9) <> 0 or
        pos("yza",    "aa", 1) <> 0 or
        pos("yza",    "aa", 2) <> 0 or
        pos("yza",    "aa", 3) <> 0 or
        pos("yza",    "aa", 4) <> 0 or
        pos("yza",    "aa", 9) <> 0 or
        pos("aab",    "aa", 1) <> 1 or
        pos("aab",    "aa", 2) <> 0 or
        pos("aab",    "aa", 3) <> 0 or
        pos("aab",    "aa", 4) <> 0 or
        pos("aab",    "aa", 9) <> 0 or
        pos("zaa",    "aa", 1) <> 2 or
        pos("zaa",    "aa", 2) <> 2 or
        pos("zaa",    "aa", 3) <> 0 or
        pos("zaa",    "aa", 4) <> 0 or
        pos("zaa",    "aa", 9) <> 0 or
        pos("aaa",    "aa", 1) <> 1 or
        pos("aaa",    "aa", 2) <> 2 or
        pos("aaa",    "aa", 3) <> 0 or
        pos("aaa",    "aa", 4) <> 0 or
        pos("aaa",    "aa", 9) <> 0 or
        pos("bcdef",  "aa", 1) <> 0 or
        pos("bcdef",  "aa", 2) <> 0 or
        pos("bcdef",  "aa", 3) <> 0 or
        pos("bcdef",  "aa", 4) <> 0 or
        pos("bcdef",  "aa", 5) <> 0 or
        pos("bcdef",  "aa", 6) <> 0 or
        pos("bcdef",  "aa", 9) <> 0 or
        pos("abcde",  "aa", 1) <> 0 or
        pos("abcde",  "aa", 2) <> 0 or
        pos("abcde",  "aa", 3) <> 0 or
        pos("abcde",  "aa", 4) <> 0 or
        pos("abcde",  "aa", 5) <> 0 or
        pos("abcde",  "aa", 6) <> 0 or
        pos("abcde",  "aa", 9) <> 0 or
        pos("zabcd",  "aa", 1) <> 0 or
        pos("zabcd",  "aa", 2) <> 0 or
        pos("zabcd",  "aa", 3) <> 0 or
        pos("zabcd",  "aa", 4) <> 0 or
        pos("zabcd",  "aa", 5) <> 0 or
        pos("zabcd",  "aa", 6) <> 0 or
        pos("zabcd",  "aa", 9) <> 0 or
        pos("yzabc",  "aa", 1) <> 0 or
        pos("yzabc",  "aa", 2) <> 0 or
        pos("yzabc",  "aa", 3) <> 0 or
        pos("yzabc",  "aa", 4) <> 0 or
        pos("yzabc",  "aa", 5) <> 0 or
        pos("yzabc",  "aa", 6) <> 0 or
        pos("yzabc",  "aa", 9) <> 0 or
        pos("xyzab",  "aa", 1) <> 0 or
        pos("xyzab",  "aa", 2) <> 0 or
        pos("xyzab",  "aa", 3) <> 0 or
        pos("xyzab",  "aa", 4) <> 0 or
        pos("xyzab",  "aa", 5) <> 0 or
        pos("xyzab",  "aa", 6) <> 0 or
        pos("xyzab",  "aa", 9) <> 0 or
        pos("wxyza",  "aa", 1) <> 0 or
        pos("wxyza",  "aa", 2) <> 0 or
        pos("wxyza",  "aa", 3) <> 0 or
        pos("wxyza",  "aa", 4) <> 0 or
        pos("wxyza",  "aa", 5) <> 0 or
        pos("wxyza",  "aa", 6) <> 0 or
        pos("wxyza",  "aa", 9) <> 0 or
        pos("ababc",  "aa", 1) <> 0 or
        pos("ababc",  "aa", 2) <> 0 or
        pos("ababc",  "aa", 3) <> 0 or
        pos("ababc",  "aa", 4) <> 0 or
        pos("ababc",  "aa", 5) <> 0 or
        pos("ababc",  "aa", 6) <> 0 or
        pos("ababc",  "aa", 9) <> 0 or
        pos("zabab",  "aa", 1) <> 0 or
        pos("zabab",  "aa", 2) <> 0 or
        pos("zabab",  "aa", 3) <> 0 or
        pos("zabab",  "aa", 4) <> 0 or
        pos("zabab",  "aa", 5) <> 0 or
        pos("zabab",  "aa", 6) <> 0 or
        pos("zabab",  "aa", 9) <> 0 or
        pos("yzaba",  "aa", 1) <> 0 or
        pos("yzaba",  "aa", 2) <> 0 or
        pos("yzaba",  "aa", 3) <> 0 or
        pos("yzaba",  "aa", 4) <> 0 or
        pos("yzaba",  "aa", 5) <> 0 or
        pos("yzaba",  "aa", 6) <> 0 or
        pos("yzaba",  "aa", 9) <> 0 or
        pos("ababa",  "aa", 1) <> 0 or
        pos("ababa",  "aa", 2) <> 0 or
        pos("ababa",  "aa", 3) <> 0 or
        pos("ababa",  "aa", 4) <> 0 or
        pos("ababa",  "aa", 5) <> 0 or
        pos("ababa",  "aa", 6) <> 0 or
        pos("ababa",  "aa", 9) <> 0 or
        pos("aabcd",  "aa", 1) <> 1 or
        pos("aabcd",  "aa", 2) <> 0 or
        pos("aabcd",  "aa", 3) <> 0 or
        pos("aabcd",  "aa", 4) <> 0 or
        pos("aabcd",  "aa", 5) <> 0 or
        pos("aabcd",  "aa", 6) <> 0 or
        pos("aabcd",  "aa", 9) <> 0 or
        pos("zaabc",  "aa", 1) <> 2 or
        pos("zaabc",  "aa", 2) <> 2 or
        pos("zaabc",  "aa", 3) <> 0 or
        pos("zaabc",  "aa", 4) <> 0 or
        pos("zaabc",  "aa", 5) <> 0 or
        pos("zaabc",  "aa", 6) <> 0 or
        pos("zaabc",  "aa", 9) <> 0 or
        pos("yzaab",  "aa", 1) <> 3 or
        pos("yzaab",  "aa", 2) <> 3 or
        pos("yzaab",  "aa", 3) <> 3 or
        pos("yzaab",  "aa", 4) <> 0 or
        pos("yzaab",  "aa", 5) <> 0 or
        pos("yzaab",  "aa", 6) <> 0 or
        pos("yzaab",  "aa", 9) <> 0 or
        pos("xyzaa",  "aa", 1) <> 4 or
        pos("xyzaa",  "aa", 2) <> 4 or
        pos("xyzaa",  "aa", 3) <> 4 or
        pos("xyzaa",  "aa", 4) <> 4 or
        pos("xyzaa",  "aa", 5) <> 0 or
        pos("xyzaa",  "aa", 6) <> 0 or
        pos("xyzaa",  "aa", 9) <> 0 or
        pos("aabab",  "aa", 1) <> 1 or
        pos("aabab",  "aa", 2) <> 0 or
        pos("aabab",  "aa", 3) <> 0 or
        pos("aabab",  "aa", 4) <> 0 or
        pos("aabab",  "aa", 5) <> 0 or
        pos("aabab",  "aa", 6) <> 0 or
        pos("aabab",  "aa", 9) <> 0 or
        pos("zaaba",  "aa", 1) <> 2 or
        pos("zaaba",  "aa", 2) <> 2 or
        pos("zaaba",  "aa", 3) <> 0 or
        pos("zaaba",  "aa", 4) <> 0 or
        pos("zaaba",  "aa", 5) <> 0 or
        pos("zaaba",  "aa", 6) <> 0 or
        pos("zaaba",  "aa", 9) <> 0 or
        pos("aabaa",  "aa", 1) <> 1 or
        pos("aabaa",  "aa", 2) <> 4 or
        pos("aabaa",  "aa", 3) <> 4 or
        pos("aabaa",  "aa", 4) <> 4 or
        pos("aabaa",  "aa", 5) <> 0 or
        pos("aabaa",  "aa", 6) <> 0 or
        pos("aabaa",  "aa", 9) <> 0 or
        pos("aaabc",  "aa", 1) <> 1 or
        pos("aaabc",  "aa", 2) <> 2 or
        pos("aaabc",  "aa", 3) <> 0 or
        pos("aaabc",  "aa", 4) <> 0 or
        pos("aaabc",  "aa", 5) <> 0 or
        pos("aaabc",  "aa", 6) <> 0 or
        pos("aaabc",  "aa", 9) <> 0 or
        pos("zaaab",  "aa", 1) <> 2 or
        pos("zaaab",  "aa", 2) <> 2 or
        pos("zaaab",  "aa", 3) <> 3 or
        pos("zaaab",  "aa", 4) <> 0 or
        pos("zaaab",  "aa", 5) <> 0 or
        pos("zaaab",  "aa", 6) <> 0 or
        pos("zaaab",  "aa", 9) <> 0 or
        pos("yzaaa",  "aa", 1) <> 3 or
        pos("yzaaa",  "aa", 2) <> 3 or
        pos("yzaaa",  "aa", 3) <> 3 or
        pos("yzaaa",  "aa", 4) <> 4 or
        pos("yzaaa",  "aa", 5) <> 0 or
        pos("yzaaa",  "aa", 6) <> 0 or
        pos("yzaaa",  "aa", 9) <> 0 or
        pos("aaaba",  "aa", 1) <> 1 or
        pos("aaaba",  "aa", 2) <> 2 or
        pos("aaaba",  "aa", 3) <> 0 or
        pos("aaaba",  "aa", 4) <> 0 or
        pos("aaaba",  "aa", 5) <> 0 or
        pos("aaaba",  "aa", 6) <> 0 or
        pos("aaaba",  "aa", 9) <> 0 or
        pos("aaaab",  "aa", 1) <> 1 or
        pos("aaaab",  "aa", 2) <> 2 or
        pos("aaaab",  "aa", 3) <> 3 or
        pos("aaaab",  "aa", 4) <> 0 or
        pos("aaaab",  "aa", 5) <> 0 or
        pos("aaaab",  "aa", 6) <> 0 or
        pos("aaaab",  "aa", 9) <> 0 or
        pos("zaaaa",  "aa", 1) <> 2 or
        pos("zaaaa",  "aa", 2) <> 2 or
        pos("zaaaa",  "aa", 3) <> 3 or
        pos("zaaaa",  "aa", 4) <> 4 or
        pos("zaaaa",  "aa", 5) <> 0 or
        pos("zaaaa",  "aa", 6) <> 0 or
        pos("zaaaa",  "aa", 9) <> 0 or
        pos("aaaaa",  "aa", 1) <> 1 or
        pos("aaaaa",  "aa", 2) <> 2 or
        pos("aaaaa",  "aa", 3) <> 3 or
        pos("aaaaa",  "aa", 4) <> 4 or
        pos("aaaaa",  "aa", 5) <> 0 or
        pos("aaaaa",  "aa", 6) <> 0 or
        pos("aaaaa",  "aa", 9) <> 0 then
      writeln(" ***** pos(STRING, \"aa\", start) does not work correct.");
      okay := FALSE;
    end if;
    if  rpos("",       "") <> 0 or
        rpos("a",      "") <> 0 or
        rpos("ab",     "") <> 0 or
        rpos("abc",    "") <> 0 or
        rpos("abcde",  "") <> 0 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba", "") <> 0 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz", "") <> 0 then
      writeln(" ***** rpos(STRING, \"\") does not work correct.");
      okay := FALSE;
    end if;
    if  rpos("",       "\0;") <> 0 or
        rpos("a",      "\0;") <> 0 or
        rpos("ab",     "\0;") <> 0 or
        rpos("abc",    "\0;") <> 0 or
        rpos("abcde",  "\0;") <> 0 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba", "\0;") <> 0 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz", "\0;") <> 0 then
      writeln(" ***** rpos(STRING, \"\\0;\") does not work correct.");
      okay := FALSE;
    end if;
    if  rpos("\0;\4096;\0;",  "\4096;") <> 2 then
      writeln(" ***** rpos(STRING, \"\\4096;\") does not work correct.");
      okay := FALSE;
    end if;
    if  rpos("",       "a") <> 0 or
        rpos("b",      "a") <> 0 or
        rpos("a",      "a") <> 1 or
        rpos("bc",     "a") <> 0 or
        rpos("ab",     "a") <> 1 or
        rpos("za",     "a") <> 2 or
        rpos("aa",     "a") <> 2 or
        rpos("bcd",    "a") <> 0 or
        rpos("abc",    "a") <> 1 or
        rpos("zab",    "a") <> 2 or
        rpos("yza",    "a") <> 3 or
        rpos("aab",    "a") <> 2 or
        rpos("aba",    "a") <> 3 or
        rpos("zaa",    "a") <> 3 or
        rpos("aaa",    "a") <> 3 or
        rpos("bcdef",  "a") <> 0 or
        rpos("abcde",  "a") <> 1 or
        rpos("zabcd",  "a") <> 2 or
        rpos("yzabc",  "a") <> 3 or
        rpos("xyzab",  "a") <> 4 or
        rpos("wxyza",  "a") <> 5 or
        rpos("ababc",  "a") <> 3 or
        rpos("zabad",  "a") <> 4 or
        rpos("yzaba",  "a") <> 5 or
        rpos("yzaab",  "a") <> 4 or
        rpos("xyzaa",  "a") <> 5 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba", "a") <> 51 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz", "a") <> 26 then
      writeln(" ***** rpos(STRING, \"a\") does not work correct.");
      okay := FALSE;
    end if;
    if  rpos("",       "ab") <> 0 or
        rpos("c",      "ab") <> 0 or
        rpos("a",      "ab") <> 0 or
        rpos("b",      "ab") <> 0 or
        rpos("cd",     "ab") <> 0 or
        rpos("ac",     "ab") <> 0 or
        rpos("bc",     "ab") <> 0 or
        rpos("ab",     "ab") <> 1 or
        rpos("za",     "ab") <> 0 or
        rpos("zb",     "ab") <> 0 or
        rpos("cde",    "ab") <> 0 or
        rpos("bcd",    "ab") <> 0 or
        rpos("abc",    "ab") <> 1 or
        rpos("zab",    "ab") <> 2 or
        rpos("yza",    "ab") <> 0 or
        rpos("azy",    "ab") <> 0 or
        rpos("baz",    "ab") <> 0 or
        rpos("cba",    "ab") <> 0 or
        rpos("dcb",    "ab") <> 0 or
        rpos("aaa",    "ab") <> 0 or
        rpos("bbb",    "ab") <> 0 or
        rpos("cdefg",  "ab") <> 0 or
        rpos("bcdef",  "ab") <> 0 or
        rpos("abcde",  "ab") <> 1 or
        rpos("zabcd",  "ab") <> 2 or
        rpos("yzabc",  "ab") <> 3 or
        rpos("xyzab",  "ab") <> 4 or
        rpos("wxyza",  "ab") <> 0 or
        rpos("abbbb",  "ab") <> 1 or
        rpos("aabbb",  "ab") <> 2 or
        rpos("aaabb",  "ab") <> 3 or
        rpos("aaaab",  "ab") <> 4 or
        rpos("ababc",  "ab") <> 3 or
        rpos("abcab",  "ab") <> 4 or
        rpos("zabab",  "ab") <> 4 or
        rpos("azbaz",  "ab") <> 0 or
        rpos("bazba",  "ab") <> 0 or
        rpos("cbazb",  "ab") <> 0 or
        rpos("aaaaa",  "ab") <> 0 or
        rpos("bbbbb",  "ab") <> 0 then
      writeln(" ***** rpos(STRING, \"ab\") does not work correct.");
      okay := FALSE;
    end if;
    if  rpos("",       "abc") <> 0 or
        rpos("d",      "abc") <> 0 or
        rpos("a",      "abc") <> 0 or
        rpos("b",      "abc") <> 0 or
        rpos("c",      "abc") <> 0 or
        rpos("de",     "abc") <> 0 or
        rpos("bc",     "abc") <> 0 or
        rpos("ab",     "abc") <> 0 or
        rpos("za",     "abc") <> 0 or
        rpos("cde",    "abc") <> 0 or
        rpos("bcd",    "abc") <> 0 or
        rpos("abc",    "abc") <> 1 or
        rpos("zab",    "abc") <> 0 or
        rpos("yza",    "abc") <> 0 or
        rpos("azy",    "abc") <> 0 or
        rpos("baz",    "abc") <> 0 or
        rpos("cba",    "abc") <> 0 or
        rpos("dcb",    "abc") <> 0 or
        rpos("aaa",    "abc") <> 0 or
        rpos("bbb",    "abc") <> 0 or
        rpos("ccc",    "abc") <> 0 or
        rpos("abcz",   "abc") <> 1 or
        rpos("zabc",   "abc") <> 2 or
        rpos("aabc",   "abc") <> 2 or
        rpos("yzab",   "abc") <> 0 or
        rpos("xyza",   "abc") <> 0 or
        rpos("cbax",   "abc") <> 0 or
        rpos("xcba",   "abc") <> 0 or
        rpos("abab",   "abc") <> 0 or
        rpos("xaba",   "abc") <> 0 or
        rpos("cdefg",  "abc") <> 0 or
        rpos("bcdef",  "abc") <> 0 or
        rpos("abcde",  "abc") <> 1 or
        rpos("zabcd",  "abc") <> 2 or
        rpos("yzabc",  "abc") <> 3 or
        rpos("xyzab",  "abc") <> 0 or
        rpos("wxyza",  "abc") <> 0 or
        rpos("bcccc",  "abc") <> 0 or
        rpos("abccc",  "abc") <> 1 or
        rpos("aabcc",  "abc") <> 2 or
        rpos("aaabc",  "abc") <> 3 or
        rpos("aaaab",  "abc") <> 0 or
        rpos("abcab",  "abc") <> 1 or
        rpos("aabcc",  "abc") <> 2 or
        rpos("zabab",  "abc") <> 0 or
        rpos("azbaz",  "abc") <> 0 or
        rpos("bazba",  "abc") <> 0 or
        rpos("cbazb",  "abc") <> 0 or
        rpos("aaaaa",  "abc") <> 0 or
        rpos("bbbbb",  "abc") <> 0 or
        rpos("ccccc",  "abc") <> 0 or
        rpos("ababababababababababababababababcababababababababab", "abc") <> 31 or
        rpos("bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcabcbcbcbcbcbcbcbcbcbc", "abc") <> 31 or
        rpos("acbacbacbacbacbacbacbacbacbacbabcacbacbacbacbacbacb", "abc") <> 31 or
        rpos("ababababababcbababababcbababababcbababababcbabababa", "abc") <> 41 then
      writeln(" ***** rpos(STRING, \"abc\") does not work correct.");
      okay := FALSE;
    end if;
    if  rpos("",       "", -5) <> 0 or
        rpos("",       "", -1) <> 0 or
        rpos("",       "",  0) <> 0 or
        rpos("a",      "", -5) <> 0 or
        rpos("a",      "", -1) <> 0 or
        rpos("a",      "",  0) <> 0 or
        rpos("a",      "",  1) <> 0 or
        rpos("ab",     "", -5) <> 0 or
        rpos("ab",     "", -1) <> 0 or
        rpos("ab",     "",  0) <> 0 or
        rpos("ab",     "",  1) <> 0 or
        rpos("ab",     "",  2) <> 0 or
        rpos("abc",    "", -5) <> 0 or
        rpos("abc",    "", -1) <> 0 or
        rpos("abc",    "",  0) <> 0 or
        rpos("abc",    "",  1) <> 0 or
        rpos("abc",    "",  2) <> 0 or
        rpos("abc",    "",  3) <> 0 or
        rpos("abcde",  "", -5) <> 0 or
        rpos("abcde",  "", -1) <> 0 or
        rpos("abcde",  "",  0) <> 0 or
        rpos("abcde",  "",  1) <> 0 or
        rpos("abcde",  "",  2) <> 0 or
        rpos("abcde",  "",  3) <> 0 or
        rpos("abcde",  "",  4) <> 0 or
        rpos("abcde",  "",  5) <> 0 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "", -5) <> 0 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "", -1) <> 0 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "",  0) <> 0 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "",  1) <> 0 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "",  2) <> 0 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "",  9) <> 0 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "", 51) <> 0 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "", -5) <> 0 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "",  0) <> 0 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "",  1) <> 0 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "",  2) <> 0 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "",  9) <> 0 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "", 51) <> 0 then
      writeln(" ***** rpos(STRING, \"\", start) does not work correct.");
      okay := FALSE;
    end if;
    if  rpos("",       "a", -5) <> 0 or
        rpos("",       "a", -1) <> 0 or
        rpos("",       "a",  0) <> 0 or
        rpos("b",      "a", -5) <> 0 or
        rpos("b",      "a", -1) <> 0 or
        rpos("b",      "a",  0) <> 0 or
        rpos("b",      "a",  1) <> 0 or
        rpos("a",      "a", -5) <> 0 or
        rpos("a",      "a", -1) <> 0 or
        rpos("a",      "a",  0) <> 0 or
        rpos("a",      "a",  1) <> 1 or
        rpos("bc",     "a", -5) <> 0 or
        rpos("bc",     "a", -1) <> 0 or
        rpos("bc",     "a",  0) <> 0 or
        rpos("bc",     "a",  1) <> 0 or
        rpos("bc",     "a",  2) <> 0 or
        rpos("ab",     "a", -5) <> 0 or
        rpos("ab",     "a", -1) <> 0 or
        rpos("ab",     "a",  0) <> 0 or
        rpos("ab",     "a",  1) <> 1 or
        rpos("ab",     "a",  2) <> 1 or
        rpos("za",     "a", -5) <> 0 or
        rpos("za",     "a", -1) <> 0 or
        rpos("za",     "a",  0) <> 0 or
        rpos("za",     "a",  1) <> 0 or
        rpos("za",     "a",  2) <> 2 or
        rpos("aa",     "a", -5) <> 0 or
        rpos("aa",     "a", -1) <> 0 or
        rpos("aa",     "a",  0) <> 0 or
        rpos("aa",     "a",  1) <> 1 or
        rpos("aa",     "a",  2) <> 2 or
        rpos("bcd",    "a", -5) <> 0 or
        rpos("bcd",    "a", -1) <> 0 or
        rpos("bcd",    "a",  0) <> 0 or
        rpos("bcd",    "a",  1) <> 0 or
        rpos("bcd",    "a",  2) <> 0 or
        rpos("bcd",    "a",  3) <> 0 or
        rpos("abc",    "a", -5) <> 0 or
        rpos("abc",    "a", -1) <> 0 or
        rpos("abc",    "a",  0) <> 0 or
        rpos("abc",    "a",  1) <> 1 or
        rpos("abc",    "a",  2) <> 1 or
        rpos("abc",    "a",  3) <> 1 or
        rpos("zab",    "a", -5) <> 0 or
        rpos("zab",    "a", -1) <> 0 or
        rpos("zab",    "a",  0) <> 0 or
        rpos("zab",    "a",  1) <> 0 or
        rpos("zab",    "a",  2) <> 2 or
        rpos("zab",    "a",  3) <> 2 or
        rpos("yza",    "a", -5) <> 0 or
        rpos("yza",    "a", -1) <> 0 or
        rpos("yza",    "a",  0) <> 0 or
        rpos("yza",    "a",  1) <> 0 or
        rpos("yza",    "a",  2) <> 0 or
        rpos("yza",    "a",  3) <> 3 or
        rpos("aab",    "a", -5) <> 0 or
        rpos("aab",    "a", -1) <> 0 or
        rpos("aab",    "a",  0) <> 0 or
        rpos("aab",    "a",  1) <> 1 or
        rpos("aab",    "a",  2) <> 2 or
        rpos("aab",    "a",  3) <> 2 or
        rpos("aba",    "a", -5) <> 0 or
        rpos("aba",    "a", -1) <> 0 or
        rpos("aba",    "a",  0) <> 0 or
        rpos("aba",    "a",  1) <> 1 or
        rpos("aba",    "a",  2) <> 1 or
        rpos("aba",    "a",  3) <> 3 or
        rpos("zaa",    "a", -5) <> 0 or
        rpos("zaa",    "a", -1) <> 0 or
        rpos("zaa",    "a",  0) <> 0 or
        rpos("zaa",    "a",  1) <> 0 or
        rpos("zaa",    "a",  2) <> 2 or
        rpos("zaa",    "a",  3) <> 3 or
        rpos("aaa",    "a", -5) <> 0 or
        rpos("aaa",    "a", -1) <> 0 or
        rpos("aaa",    "a",  0) <> 0 or
        rpos("aaa",    "a",  1) <> 1 or
        rpos("aaa",    "a",  2) <> 2 or
        rpos("aaa",    "a",  3) <> 3 or
        rpos("bcdef",  "a", -5) <> 0 or
        rpos("bcdef",  "a", -1) <> 0 or
        rpos("bcdef",  "a",  0) <> 0 or
        rpos("bcdef",  "a",  1) <> 0 or
        rpos("bcdef",  "a",  2) <> 0 or
        rpos("bcdef",  "a",  3) <> 0 or
        rpos("bcdef",  "a",  4) <> 0 or
        rpos("bcdef",  "a",  5) <> 0 or
        rpos("abcde",  "a", -5) <> 0 or
        rpos("abcde",  "a", -1) <> 0 or
        rpos("abcde",  "a",  0) <> 0 or
        rpos("abcde",  "a",  1) <> 1 or
        rpos("abcde",  "a",  2) <> 1 or
        rpos("abcde",  "a",  3) <> 1 or
        rpos("abcde",  "a",  4) <> 1 or
        rpos("abcde",  "a",  5) <> 1 or
        rpos("zabcd",  "a", -5) <> 0 or
        rpos("zabcd",  "a", -1) <> 0 or
        rpos("zabcd",  "a",  0) <> 0 or
        rpos("zabcd",  "a",  1) <> 0 or
        rpos("zabcd",  "a",  2) <> 2 or
        rpos("zabcd",  "a",  3) <> 2 or
        rpos("zabcd",  "a",  4) <> 2 or
        rpos("zabcd",  "a",  5) <> 2 or
        rpos("yzabc",  "a", -5) <> 0 or
        rpos("yzabc",  "a", -1) <> 0 or
        rpos("yzabc",  "a",  0) <> 0 or
        rpos("yzabc",  "a",  1) <> 0 or
        rpos("yzabc",  "a",  2) <> 0 or
        rpos("yzabc",  "a",  3) <> 3 or
        rpos("yzabc",  "a",  4) <> 3 or
        rpos("yzabc",  "a",  5) <> 3 or
        rpos("xyzab",  "a", -5) <> 0 or
        rpos("xyzab",  "a", -1) <> 0 or
        rpos("xyzab",  "a",  0) <> 0 or
        rpos("xyzab",  "a",  1) <> 0 or
        rpos("xyzab",  "a",  2) <> 0 or
        rpos("xyzab",  "a",  3) <> 0 or
        rpos("xyzab",  "a",  4) <> 4 or
        rpos("xyzab",  "a",  5) <> 4 or
        rpos("wxyza",  "a", -5) <> 0 or
        rpos("wxyza",  "a", -1) <> 0 or
        rpos("wxyza",  "a",  0) <> 0 or
        rpos("wxyza",  "a",  1) <> 0 or
        rpos("wxyza",  "a",  2) <> 0 or
        rpos("wxyza",  "a",  3) <> 0 or
        rpos("wxyza",  "a",  4) <> 0 or
        rpos("wxyza",  "a",  5) <> 5 or
        rpos("ababc",  "a", -5) <> 0 or
        rpos("ababc",  "a", -1) <> 0 or
        rpos("ababc",  "a",  0) <> 0 or
        rpos("ababc",  "a",  1) <> 1 or
        rpos("ababc",  "a",  2) <> 1 or
        rpos("ababc",  "a",  3) <> 3 or
        rpos("ababc",  "a",  4) <> 3 or
        rpos("ababc",  "a",  5) <> 3 or
        rpos("zabad",  "a", -5) <> 0 or
        rpos("zabad",  "a", -1) <> 0 or
        rpos("zabad",  "a",  0) <> 0 or
        rpos("zabad",  "a",  1) <> 0 or
        rpos("zabad",  "a",  2) <> 2 or
        rpos("zabad",  "a",  3) <> 2 or
        rpos("zabad",  "a",  4) <> 4 or
        rpos("zabad",  "a",  5) <> 4 or
        rpos("yzaba",  "a", -5) <> 0 or
        rpos("yzaba",  "a", -1) <> 0 or
        rpos("yzaba",  "a",  0) <> 0 or
        rpos("yzaba",  "a",  1) <> 0 or
        rpos("yzaba",  "a",  2) <> 0 or
        rpos("yzaba",  "a",  3) <> 3 or
        rpos("yzaba",  "a",  4) <> 3 or
        rpos("yzaba",  "a",  5) <> 5 or
        rpos("yzaab",  "a", -5) <> 0 or
        rpos("yzaab",  "a", -1) <> 0 or
        rpos("yzaab",  "a",  0) <> 0 or
        rpos("yzaab",  "a",  1) <> 0 or
        rpos("yzaab",  "a",  2) <> 0 or
        rpos("yzaab",  "a",  3) <> 3 or
        rpos("yzaab",  "a",  4) <> 4 or
        rpos("yzaab",  "a",  5) <> 4 or
        rpos("xyzaa",  "a", -5) <> 0 or
        rpos("xyzaa",  "a", -1) <> 0 or
        rpos("xyzaa",  "a",  0) <> 0 or
        rpos("xyzaa",  "a",  1) <> 0 or
        rpos("xyzaa",  "a",  2) <> 0 or
        rpos("xyzaa",  "a",  3) <> 0 or
        rpos("xyzaa",  "a",  4) <> 4 or
        rpos("xyzaa",  "a",  5) <> 5 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "a", -5) <>  0 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "a", -1) <>  0 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "a",  0) <>  0 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "a",  1) <>  1 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "a",  2) <>  1 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "a",  9) <>  1 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "a", 50) <>  1 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  "a", 51) <> 51 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "a", -5) <>  0 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "a", -1) <>  0 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "a",  0) <>  0 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "a",  1) <>  0 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "a",  2) <>  0 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "a", 25) <>  0 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "a", 26) <> 26 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "a", 27) <> 26 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "a", 50) <> 26 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  "a", 51) <> 26 then
      writeln(" ***** rpos(STRING, \"a\", start) does not work correct.");
      okay := FALSE;
    end if;
    if  rpos("",       "ab", -5) <> 0 or
        rpos("",       "ab", -1) <> 0 or
        rpos("",       "ab",  0) <> 0 or
        rpos("c",      "ab", -5) <> 0 or
        rpos("c",      "ab", -1) <> 0 or
        rpos("c",      "ab",  0) <> 0 or
        rpos("c",      "ab",  1) <> 0 or
        rpos("a",      "ab", -5) <> 0 or
        rpos("a",      "ab", -1) <> 0 or
        rpos("a",      "ab",  0) <> 0 or
        rpos("a",      "ab",  1) <> 0 or
        rpos("b",      "ab", -5) <> 0 or
        rpos("b",      "ab", -1) <> 0 or
        rpos("b",      "ab",  0) <> 0 or
        rpos("b",      "ab",  1) <> 0 or
        rpos("cd",     "ab", -5) <> 0 or
        rpos("cd",     "ab", -1) <> 0 or
        rpos("cd",     "ab",  0) <> 0 or
        rpos("cd",     "ab",  1) <> 0 or
        rpos("cd",     "ab",  2) <> 0 or
        rpos("ac",     "ab", -5) <> 0 or
        rpos("ac",     "ab", -1) <> 0 or
        rpos("ac",     "ab",  0) <> 0 or
        rpos("ac",     "ab",  1) <> 0 or
        rpos("ac",     "ab",  2) <> 0 or
        rpos("bc",     "ab", -5) <> 0 or
        rpos("bc",     "ab", -1) <> 0 or
        rpos("bc",     "ab",  0) <> 0 or
        rpos("bc",     "ab",  1) <> 0 or
        rpos("bc",     "ab",  2) <> 0 or
        rpos("ab",     "ab", -5) <> 0 or
        rpos("ab",     "ab", -1) <> 0 or
        rpos("ab",     "ab",  0) <> 0 or
        rpos("ab",     "ab",  1) <> 1 or
        rpos("ab",     "ab",  2) <> 1 or
        rpos("za",     "ab", -5) <> 0 or
        rpos("za",     "ab", -1) <> 0 or
        rpos("za",     "ab",  0) <> 0 or
        rpos("za",     "ab",  1) <> 0 or
        rpos("za",     "ab",  2) <> 0 or
        rpos("zb",     "ab", -5) <> 0 or
        rpos("zb",     "ab", -1) <> 0 or
        rpos("zb",     "ab",  0) <> 0 or
        rpos("zb",     "ab",  1) <> 0 or
        rpos("zb",     "ab",  2) <> 0 or
        rpos("cde",    "ab", -5) <> 0 or
        rpos("cde",    "ab", -1) <> 0 or
        rpos("cde",    "ab",  0) <> 0 or
        rpos("cde",    "ab",  1) <> 0 or
        rpos("cde",    "ab",  2) <> 0 or
        rpos("cde",    "ab",  3) <> 0 or
        rpos("bcd",    "ab", -5) <> 0 or
        rpos("bcd",    "ab", -1) <> 0 or
        rpos("bcd",    "ab",  0) <> 0 or
        rpos("bcd",    "ab",  1) <> 0 or
        rpos("bcd",    "ab",  2) <> 0 or
        rpos("bcd",    "ab",  3) <> 0 or
        rpos("abc",    "ab", -5) <> 0 or
        rpos("abc",    "ab", -1) <> 0 or
        rpos("abc",    "ab",  0) <> 0 or
        rpos("abc",    "ab",  1) <> 1 or
        rpos("abc",    "ab",  2) <> 1 or
        rpos("abc",    "ab",  3) <> 1 or
        rpos("zab",    "ab", -5) <> 0 or
        rpos("zab",    "ab", -1) <> 0 or
        rpos("zab",    "ab",  0) <> 0 or
        rpos("zab",    "ab",  1) <> 0 or
        rpos("zab",    "ab",  2) <> 2 or
        rpos("zab",    "ab",  3) <> 2 or
        rpos("yza",    "ab", -5) <> 0 or
        rpos("yza",    "ab", -1) <> 0 or
        rpos("yza",    "ab",  0) <> 0 or
        rpos("yza",    "ab",  1) <> 0 or
        rpos("yza",    "ab",  2) <> 0 or
        rpos("yza",    "ab",  3) <> 0 or
        rpos("azy",    "ab", -5) <> 0 or
        rpos("azy",    "ab", -1) <> 0 or
        rpos("azy",    "ab",  0) <> 0 or
        rpos("azy",    "ab",  1) <> 0 or
        rpos("azy",    "ab",  2) <> 0 or
        rpos("azy",    "ab",  3) <> 0 or
        rpos("baz",    "ab", -5) <> 0 or
        rpos("baz",    "ab", -1) <> 0 or
        rpos("baz",    "ab",  0) <> 0 or
        rpos("baz",    "ab",  1) <> 0 or
        rpos("baz",    "ab",  2) <> 0 or
        rpos("baz",    "ab",  3) <> 0 or
        rpos("cba",    "ab", -5) <> 0 or
        rpos("cba",    "ab", -1) <> 0 or
        rpos("cba",    "ab",  0) <> 0 or
        rpos("cba",    "ab",  1) <> 0 or
        rpos("cba",    "ab",  2) <> 0 or
        rpos("cba",    "ab",  3) <> 0 or
        rpos("dcb",    "ab", -5) <> 0 or
        rpos("dcb",    "ab", -1) <> 0 or
        rpos("dcb",    "ab",  0) <> 0 or
        rpos("dcb",    "ab",  1) <> 0 or
        rpos("dcb",    "ab",  2) <> 0 or
        rpos("dcb",    "ab",  3) <> 0 or
        rpos("aaa",    "ab", -5) <> 0 or
        rpos("aaa",    "ab", -1) <> 0 or
        rpos("aaa",    "ab",  0) <> 0 or
        rpos("aaa",    "ab",  1) <> 0 or
        rpos("aaa",    "ab",  2) <> 0 or
        rpos("aaa",    "ab",  3) <> 0 or
        rpos("bbb",    "ab", -5) <> 0 or
        rpos("bbb",    "ab", -1) <> 0 or
        rpos("bbb",    "ab",  0) <> 0 or
        rpos("bbb",    "ab",  1) <> 0 or
        rpos("bbb",    "ab",  2) <> 0 or
        rpos("bbb",    "ab",  3) <> 0 or
        rpos("cdefg",  "ab", -5) <> 0 or
        rpos("cdefg",  "ab", -1) <> 0 or
        rpos("cdefg",  "ab",  0) <> 0 or
        rpos("cdefg",  "ab",  1) <> 0 or
        rpos("cdefg",  "ab",  2) <> 0 or
        rpos("cdefg",  "ab",  3) <> 0 or
        rpos("cdefg",  "ab",  4) <> 0 or
        rpos("cdefg",  "ab",  5) <> 0 or
        rpos("bcdef",  "ab", -5) <> 0 or
        rpos("bcdef",  "ab", -1) <> 0 or
        rpos("bcdef",  "ab",  0) <> 0 or
        rpos("bcdef",  "ab",  1) <> 0 or
        rpos("bcdef",  "ab",  2) <> 0 or
        rpos("bcdef",  "ab",  3) <> 0 or
        rpos("bcdef",  "ab",  4) <> 0 or
        rpos("bcdef",  "ab",  5) <> 0 or
        rpos("abcde",  "ab", -5) <> 0 or
        rpos("abcde",  "ab", -1) <> 0 or
        rpos("abcde",  "ab",  0) <> 0 or
        rpos("abcde",  "ab",  1) <> 1 or
        rpos("abcde",  "ab",  2) <> 1 or
        rpos("abcde",  "ab",  3) <> 1 or
        rpos("abcde",  "ab",  4) <> 1 or
        rpos("abcde",  "ab",  5) <> 1 or
        rpos("zabcd",  "ab", -5) <> 0 or
        rpos("zabcd",  "ab", -1) <> 0 or
        rpos("zabcd",  "ab",  0) <> 0 or
        rpos("zabcd",  "ab",  1) <> 0 or
        rpos("zabcd",  "ab",  2) <> 2 or
        rpos("zabcd",  "ab",  3) <> 2 or
        rpos("zabcd",  "ab",  4) <> 2 or
        rpos("zabcd",  "ab",  5) <> 2 or
        rpos("yzabc",  "ab", -5) <> 0 or
        rpos("yzabc",  "ab", -1) <> 0 or
        rpos("yzabc",  "ab",  0) <> 0 or
        rpos("yzabc",  "ab",  1) <> 0 or
        rpos("yzabc",  "ab",  2) <> 0 or
        rpos("yzabc",  "ab",  3) <> 3 or
        rpos("yzabc",  "ab",  4) <> 3 or
        rpos("yzabc",  "ab",  5) <> 3 or
        rpos("xyzab",  "ab", -5) <> 0 or
        rpos("xyzab",  "ab", -1) <> 0 or
        rpos("xyzab",  "ab",  0) <> 0 or
        rpos("xyzab",  "ab",  1) <> 0 or
        rpos("xyzab",  "ab",  2) <> 0 or
        rpos("xyzab",  "ab",  3) <> 0 or
        rpos("xyzab",  "ab",  4) <> 4 or
        rpos("xyzab",  "ab",  5) <> 4 or
        rpos("wxyza",  "ab", -5) <> 0 or
        rpos("wxyza",  "ab", -1) <> 0 or
        rpos("wxyza",  "ab",  0) <> 0 or
        rpos("wxyza",  "ab",  1) <> 0 or
        rpos("wxyza",  "ab",  2) <> 0 or
        rpos("wxyza",  "ab",  3) <> 0 or
        rpos("wxyza",  "ab",  4) <> 0 or
        rpos("wxyza",  "ab",  5) <> 0 or
        rpos("abbbb",  "ab", -5) <> 0 or
        rpos("abbbb",  "ab", -1) <> 0 or
        rpos("abbbb",  "ab",  0) <> 0 or
        rpos("abbbb",  "ab",  1) <> 1 or
        rpos("abbbb",  "ab",  2) <> 1 or
        rpos("abbbb",  "ab",  3) <> 1 or
        rpos("abbbb",  "ab",  4) <> 1 or
        rpos("abbbb",  "ab",  5) <> 1 or
        rpos("aabbb",  "ab", -5) <> 0 or
        rpos("aabbb",  "ab", -1) <> 0 or
        rpos("aabbb",  "ab",  0) <> 0 or
        rpos("aabbb",  "ab",  1) <> 0 or
        rpos("aabbb",  "ab",  2) <> 2 or
        rpos("aabbb",  "ab",  3) <> 2 or
        rpos("aabbb",  "ab",  4) <> 2 or
        rpos("aabbb",  "ab",  5) <> 2 or
        rpos("aaabb",  "ab", -5) <> 0 or
        rpos("aaabb",  "ab", -1) <> 0 or
        rpos("aaabb",  "ab",  0) <> 0 or
        rpos("aaabb",  "ab",  1) <> 0 or
        rpos("aaabb",  "ab",  2) <> 0 or
        rpos("aaabb",  "ab",  3) <> 3 or
        rpos("aaabb",  "ab",  4) <> 3 or
        rpos("aaabb",  "ab",  5) <> 3 or
        rpos("aaaab",  "ab", -5) <> 0 or
        rpos("aaaab",  "ab", -1) <> 0 or
        rpos("aaaab",  "ab",  0) <> 0 or
        rpos("aaaab",  "ab",  1) <> 0 or
        rpos("aaaab",  "ab",  2) <> 0 or
        rpos("aaaab",  "ab",  3) <> 0 or
        rpos("aaaab",  "ab",  4) <> 4 or
        rpos("aaaab",  "ab",  5) <> 4 or
        rpos("ababc",  "ab", -5) <> 0 or
        rpos("ababc",  "ab", -1) <> 0 or
        rpos("ababc",  "ab",  0) <> 0 or
        rpos("ababc",  "ab",  1) <> 1 or
        rpos("ababc",  "ab",  2) <> 1 or
        rpos("ababc",  "ab",  3) <> 3 or
        rpos("ababc",  "ab",  4) <> 3 or
        rpos("ababc",  "ab",  5) <> 3 or
        rpos("abcab",  "ab", -5) <> 0 or
        rpos("abcab",  "ab", -1) <> 0 or
        rpos("abcab",  "ab",  0) <> 0 or
        rpos("abcab",  "ab",  1) <> 1 or
        rpos("abcab",  "ab",  2) <> 1 or
        rpos("abcab",  "ab",  3) <> 1 or
        rpos("abcab",  "ab",  4) <> 4 or
        rpos("abcab",  "ab",  5) <> 4 or
        rpos("zabab",  "ab", -5) <> 0 or
        rpos("zabab",  "ab", -1) <> 0 or
        rpos("zabab",  "ab",  0) <> 0 or
        rpos("zabab",  "ab",  1) <> 0 or
        rpos("zabab",  "ab",  2) <> 2 or
        rpos("zabab",  "ab",  3) <> 2 or
        rpos("zabab",  "ab",  4) <> 4 or
        rpos("zabab",  "ab",  5) <> 4 or
        rpos("azbaz",  "ab", -5) <> 0 or
        rpos("azbaz",  "ab", -1) <> 0 or
        rpos("azbaz",  "ab",  0) <> 0 or
        rpos("azbaz",  "ab",  1) <> 0 or
        rpos("azbaz",  "ab",  2) <> 0 or
        rpos("azbaz",  "ab",  3) <> 0 or
        rpos("azbaz",  "ab",  4) <> 0 or
        rpos("azbaz",  "ab",  5) <> 0 or
        rpos("bazba",  "ab", -5) <> 0 or
        rpos("bazba",  "ab", -1) <> 0 or
        rpos("bazba",  "ab",  0) <> 0 or
        rpos("bazba",  "ab",  1) <> 0 or
        rpos("bazba",  "ab",  2) <> 0 or
        rpos("bazba",  "ab",  3) <> 0 or
        rpos("bazba",  "ab",  4) <> 0 or
        rpos("bazba",  "ab",  5) <> 0 or
        rpos("cbazb",  "ab", -5) <> 0 or
        rpos("cbazb",  "ab", -1) <> 0 or
        rpos("cbazb",  "ab",  0) <> 0 or
        rpos("cbazb",  "ab",  1) <> 0 or
        rpos("cbazb",  "ab",  2) <> 0 or
        rpos("cbazb",  "ab",  3) <> 0 or
        rpos("cbazb",  "ab",  4) <> 0 or
        rpos("cbazb",  "ab",  5) <> 0 or
        rpos("aaaaa",  "ab", -5) <> 0 or
        rpos("aaaaa",  "ab", -1) <> 0 or
        rpos("aaaaa",  "ab",  0) <> 0 or
        rpos("aaaaa",  "ab",  1) <> 0 or
        rpos("aaaaa",  "ab",  2) <> 0 or
        rpos("aaaaa",  "ab",  3) <> 0 or
        rpos("aaaaa",  "ab",  4) <> 0 or
        rpos("aaaaa",  "ab",  5) <> 0 or
        rpos("bbbbb",  "ab", -5) <> 0 or
        rpos("bbbbb",  "ab", -1) <> 0 or
        rpos("bbbbb",  "ab",  0) <> 0 or
        rpos("bbbbb",  "ab",  1) <> 0 or
        rpos("bbbbb",  "ab",  2) <> 0 or
        rpos("bbbbb",  "ab",  3) <> 0 or
        rpos("bbbbb",  "ab",  4) <> 0 or
        rpos("bbbbb",  "ab",  5) <> 0 then
      writeln(" ***** rpos(STRING, \"ab\", start) does not work correct.");
      okay := FALSE;
    end if;
    if  rpos("",       "aa", -5) <> 0 or
        rpos("",       "aa", -1) <> 0 or
        rpos("",       "aa",  0) <> 0 or
        rpos("b",      "aa", -5) <> 0 or
        rpos("b",      "aa", -1) <> 0 or
        rpos("b",      "aa",  0) <> 0 or
        rpos("b",      "aa",  1) <> 0 or
        rpos("a",      "aa", -5) <> 0 or
        rpos("a",      "aa", -1) <> 0 or
        rpos("a",      "aa",  0) <> 0 or
        rpos("a",      "aa",  1) <> 0 or
        rpos("bc",     "aa", -5) <> 0 or
        rpos("bc",     "aa", -1) <> 0 or
        rpos("bc",     "aa",  0) <> 0 or
        rpos("bc",     "aa",  1) <> 0 or
        rpos("bc",     "aa",  2) <> 0 or
        rpos("ab",     "aa", -5) <> 0 or
        rpos("ab",     "aa", -1) <> 0 or
        rpos("ab",     "aa",  0) <> 0 or
        rpos("ab",     "aa",  1) <> 0 or
        rpos("ab",     "aa",  2) <> 0 or
        rpos("za",     "aa", -5) <> 0 or
        rpos("za",     "aa", -1) <> 0 or
        rpos("za",     "aa",  0) <> 0 or
        rpos("za",     "aa",  1) <> 0 or
        rpos("za",     "aa",  2) <> 0 or
        rpos("aa",     "aa", -5) <> 0 or
        rpos("aa",     "aa", -1) <> 0 or
        rpos("aa",     "aa",  0) <> 0 or
        rpos("aa",     "aa",  1) <> 1 or
        rpos("aa",     "aa",  2) <> 1 or
        rpos("bcd",    "aa", -5) <> 0 or
        rpos("bcd",    "aa", -1) <> 0 or
        rpos("bcd",    "aa",  0) <> 0 or
        rpos("bcd",    "aa",  1) <> 0 or
        rpos("bcd",    "aa",  2) <> 0 or
        rpos("bcd",    "aa",  3) <> 0 or
        rpos("abc",    "aa", -5) <> 0 or
        rpos("abc",    "aa", -1) <> 0 or
        rpos("abc",    "aa",  0) <> 0 or
        rpos("abc",    "aa",  1) <> 0 or
        rpos("abc",    "aa",  2) <> 0 or
        rpos("abc",    "aa",  3) <> 0 or
        rpos("zab",    "aa", -5) <> 0 or
        rpos("zab",    "aa", -1) <> 0 or
        rpos("zab",    "aa",  0) <> 0 or
        rpos("zab",    "aa",  1) <> 0 or
        rpos("zab",    "aa",  2) <> 0 or
        rpos("zab",    "aa",  3) <> 0 or
        rpos("yza",    "aa", -5) <> 0 or
        rpos("yza",    "aa", -1) <> 0 or
        rpos("yza",    "aa",  0) <> 0 or
        rpos("yza",    "aa",  1) <> 0 or
        rpos("yza",    "aa",  2) <> 0 or
        rpos("yza",    "aa",  3) <> 0 or
        rpos("aab",    "aa", -5) <> 0 or
        rpos("aab",    "aa", -1) <> 0 or
        rpos("aab",    "aa",  0) <> 0 or
        rpos("aab",    "aa",  1) <> 1 or
        rpos("aab",    "aa",  2) <> 1 or
        rpos("aab",    "aa",  3) <> 1 or
        rpos("zaa",    "aa", -5) <> 0 or
        rpos("zaa",    "aa", -1) <> 0 or
        rpos("zaa",    "aa",  0) <> 0 or
        rpos("zaa",    "aa",  1) <> 0 or
        rpos("zaa",    "aa",  2) <> 2 or
        rpos("zaa",    "aa",  3) <> 2 or
        rpos("aaa",    "aa", -5) <> 0 or
        rpos("aaa",    "aa", -1) <> 0 or
        rpos("aaa",    "aa",  0) <> 0 or
        rpos("aaa",    "aa",  1) <> 1 or
        rpos("aaa",    "aa",  2) <> 2 or
        rpos("aaa",    "aa",  3) <> 2 or
        rpos("bcdef",  "aa", -5) <> 0 or
        rpos("bcdef",  "aa", -1) <> 0 or
        rpos("bcdef",  "aa",  0) <> 0 or
        rpos("bcdef",  "aa",  1) <> 0 or
        rpos("bcdef",  "aa",  2) <> 0 or
        rpos("bcdef",  "aa",  3) <> 0 or
        rpos("bcdef",  "aa",  4) <> 0 or
        rpos("bcdef",  "aa",  5) <> 0 or
        rpos("abcde",  "aa", -5) <> 0 or
        rpos("abcde",  "aa", -1) <> 0 or
        rpos("abcde",  "aa",  0) <> 0 or
        rpos("abcde",  "aa",  1) <> 0 or
        rpos("abcde",  "aa",  2) <> 0 or
        rpos("abcde",  "aa",  3) <> 0 or
        rpos("abcde",  "aa",  4) <> 0 or
        rpos("abcde",  "aa",  5) <> 0 or
        rpos("zabcd",  "aa", -5) <> 0 or
        rpos("zabcd",  "aa", -1) <> 0 or
        rpos("zabcd",  "aa",  0) <> 0 or
        rpos("zabcd",  "aa",  1) <> 0 or
        rpos("zabcd",  "aa",  2) <> 0 or
        rpos("zabcd",  "aa",  3) <> 0 or
        rpos("zabcd",  "aa",  4) <> 0 or
        rpos("zabcd",  "aa",  5) <> 0 or
        rpos("yzabc",  "aa", -5) <> 0 or
        rpos("yzabc",  "aa", -1) <> 0 or
        rpos("yzabc",  "aa",  0) <> 0 or
        rpos("yzabc",  "aa",  1) <> 0 or
        rpos("yzabc",  "aa",  2) <> 0 or
        rpos("yzabc",  "aa",  3) <> 0 or
        rpos("yzabc",  "aa",  4) <> 0 or
        rpos("yzabc",  "aa",  5) <> 0 or
        rpos("xyzab",  "aa", -5) <> 0 or
        rpos("xyzab",  "aa", -1) <> 0 or
        rpos("xyzab",  "aa",  0) <> 0 or
        rpos("xyzab",  "aa",  1) <> 0 or
        rpos("xyzab",  "aa",  2) <> 0 or
        rpos("xyzab",  "aa",  3) <> 0 or
        rpos("xyzab",  "aa",  4) <> 0 or
        rpos("xyzab",  "aa",  5) <> 0 or
        rpos("wxyza",  "aa", -5) <> 0 or
        rpos("wxyza",  "aa", -1) <> 0 or
        rpos("wxyza",  "aa",  0) <> 0 or
        rpos("wxyza",  "aa",  1) <> 0 or
        rpos("wxyza",  "aa",  2) <> 0 or
        rpos("wxyza",  "aa",  3) <> 0 or
        rpos("wxyza",  "aa",  4) <> 0 or
        rpos("wxyza",  "aa",  5) <> 0 or
        rpos("ababc",  "aa", -5) <> 0 or
        rpos("ababc",  "aa", -1) <> 0 or
        rpos("ababc",  "aa",  0) <> 0 or
        rpos("ababc",  "aa",  1) <> 0 or
        rpos("ababc",  "aa",  2) <> 0 or
        rpos("ababc",  "aa",  3) <> 0 or
        rpos("ababc",  "aa",  4) <> 0 or
        rpos("ababc",  "aa",  5) <> 0 or
        rpos("zabab",  "aa", -5) <> 0 or
        rpos("zabab",  "aa", -1) <> 0 or
        rpos("zabab",  "aa",  0) <> 0 or
        rpos("zabab",  "aa",  1) <> 0 or
        rpos("zabab",  "aa",  2) <> 0 or
        rpos("zabab",  "aa",  3) <> 0 or
        rpos("zabab",  "aa",  4) <> 0 or
        rpos("zabab",  "aa",  5) <> 0 or
        rpos("yzaba",  "aa", -5) <> 0 or
        rpos("yzaba",  "aa", -1) <> 0 or
        rpos("yzaba",  "aa",  0) <> 0 or
        rpos("yzaba",  "aa",  1) <> 0 or
        rpos("yzaba",  "aa",  2) <> 0 or
        rpos("yzaba",  "aa",  3) <> 0 or
        rpos("yzaba",  "aa",  4) <> 0 or
        rpos("yzaba",  "aa",  5) <> 0 or
        rpos("ababa",  "aa", -5) <> 0 or
        rpos("ababa",  "aa", -1) <> 0 or
        rpos("ababa",  "aa",  0) <> 0 or
        rpos("ababa",  "aa",  1) <> 0 or
        rpos("ababa",  "aa",  2) <> 0 or
        rpos("ababa",  "aa",  3) <> 0 or
        rpos("ababa",  "aa",  4) <> 0 or
        rpos("ababa",  "aa",  5) <> 0 or
        rpos("aabcd",  "aa", -5) <> 0 or
        rpos("aabcd",  "aa", -1) <> 0 or
        rpos("aabcd",  "aa",  0) <> 0 or
        rpos("aabcd",  "aa",  1) <> 1 or
        rpos("aabcd",  "aa",  2) <> 1 or
        rpos("aabcd",  "aa",  3) <> 1 or
        rpos("aabcd",  "aa",  4) <> 1 or
        rpos("aabcd",  "aa",  5) <> 1 or
        rpos("zaabc",  "aa", -5) <> 0 or
        rpos("zaabc",  "aa", -1) <> 0 or
        rpos("zaabc",  "aa",  0) <> 0 or
        rpos("zaabc",  "aa",  1) <> 0 or
        rpos("zaabc",  "aa",  2) <> 2 or
        rpos("zaabc",  "aa",  3) <> 2 or
        rpos("zaabc",  "aa",  4) <> 2 or
        rpos("zaabc",  "aa",  5) <> 2 or
        rpos("yzaab",  "aa", -5) <> 0 or
        rpos("yzaab",  "aa", -1) <> 0 or
        rpos("yzaab",  "aa",  0) <> 0 or
        rpos("yzaab",  "aa",  1) <> 0 or
        rpos("yzaab",  "aa",  2) <> 0 or
        rpos("yzaab",  "aa",  3) <> 3 or
        rpos("yzaab",  "aa",  4) <> 3 or
        rpos("yzaab",  "aa",  5) <> 3 or
        rpos("xyzaa",  "aa", -5) <> 0 or
        rpos("xyzaa",  "aa", -1) <> 0 or
        rpos("xyzaa",  "aa",  0) <> 0 or
        rpos("xyzaa",  "aa",  1) <> 0 or
        rpos("xyzaa",  "aa",  2) <> 0 or
        rpos("xyzaa",  "aa",  3) <> 0 or
        rpos("xyzaa",  "aa",  4) <> 4 or
        rpos("xyzaa",  "aa",  5) <> 4 or
        rpos("aabab",  "aa", -5) <> 0 or
        rpos("aabab",  "aa", -1) <> 0 or
        rpos("aabab",  "aa",  0) <> 0 or
        rpos("aabab",  "aa",  1) <> 1 or
        rpos("aabab",  "aa",  2) <> 1 or
        rpos("aabab",  "aa",  3) <> 1 or
        rpos("aabab",  "aa",  4) <> 1 or
        rpos("aabab",  "aa",  5) <> 1 or
        rpos("zaaba",  "aa", -5) <> 0 or
        rpos("zaaba",  "aa", -1) <> 0 or
        rpos("zaaba",  "aa",  0) <> 0 or
        rpos("zaaba",  "aa",  1) <> 0 or
        rpos("zaaba",  "aa",  2) <> 2 or
        rpos("zaaba",  "aa",  3) <> 2 or
        rpos("zaaba",  "aa",  4) <> 2 or
        rpos("zaaba",  "aa",  5) <> 2 or
        rpos("aabaa",  "aa", -5) <> 0 or
        rpos("aabaa",  "aa", -1) <> 0 or
        rpos("aabaa",  "aa",  0) <> 0 or
        rpos("aabaa",  "aa",  1) <> 1 or
        rpos("aabaa",  "aa",  2) <> 1 or
        rpos("aabaa",  "aa",  3) <> 1 or
        rpos("aabaa",  "aa",  4) <> 4 or
        rpos("aabaa",  "aa",  5) <> 4 or
        rpos("aaabc",  "aa", -5) <> 0 or
        rpos("aaabc",  "aa", -1) <> 0 or
        rpos("aaabc",  "aa",  0) <> 0 or
        rpos("aaabc",  "aa",  1) <> 1 or
        rpos("aaabc",  "aa",  2) <> 2 or
        rpos("aaabc",  "aa",  3) <> 2 or
        rpos("aaabc",  "aa",  4) <> 2 or
        rpos("aaabc",  "aa",  5) <> 2 or
        rpos("zaaab",  "aa", -5) <> 0 or
        rpos("zaaab",  "aa", -1) <> 0 or
        rpos("zaaab",  "aa",  0) <> 0 or
        rpos("zaaab",  "aa",  1) <> 0 or
        rpos("zaaab",  "aa",  2) <> 2 or
        rpos("zaaab",  "aa",  3) <> 3 or
        rpos("zaaab",  "aa",  4) <> 3 or
        rpos("zaaab",  "aa",  5) <> 3 or
        rpos("yzaaa",  "aa", -5) <> 0 or
        rpos("yzaaa",  "aa", -1) <> 0 or
        rpos("yzaaa",  "aa",  0) <> 0 or
        rpos("yzaaa",  "aa",  1) <> 0 or
        rpos("yzaaa",  "aa",  2) <> 0 or
        rpos("yzaaa",  "aa",  3) <> 3 or
        rpos("yzaaa",  "aa",  4) <> 4 or
        rpos("yzaaa",  "aa",  5) <> 4 or
        rpos("aaaba",  "aa", -5) <> 0 or
        rpos("aaaba",  "aa", -1) <> 0 or
        rpos("aaaba",  "aa",  0) <> 0 or
        rpos("aaaba",  "aa",  1) <> 1 or
        rpos("aaaba",  "aa",  2) <> 2 or
        rpos("aaaba",  "aa",  3) <> 2 or
        rpos("aaaba",  "aa",  4) <> 2 or
        rpos("aaaba",  "aa",  5) <> 2 or
        rpos("aaaab",  "aa", -5) <> 0 or
        rpos("aaaab",  "aa", -1) <> 0 or
        rpos("aaaab",  "aa",  0) <> 0 or
        rpos("aaaab",  "aa",  1) <> 1 or
        rpos("aaaab",  "aa",  2) <> 2 or
        rpos("aaaab",  "aa",  3) <> 3 or
        rpos("aaaab",  "aa",  4) <> 3 or
        rpos("aaaab",  "aa",  5) <> 3 or
        rpos("zaaaa",  "aa", -5) <> 0 or
        rpos("zaaaa",  "aa", -1) <> 0 or
        rpos("zaaaa",  "aa",  0) <> 0 or
        rpos("zaaaa",  "aa",  1) <> 0 or
        rpos("zaaaa",  "aa",  2) <> 2 or
        rpos("zaaaa",  "aa",  3) <> 3 or
        rpos("zaaaa",  "aa",  4) <> 4 or
        rpos("zaaaa",  "aa",  5) <> 4 or
        rpos("aaaaa",  "aa", -5) <> 0 or
        rpos("aaaaa",  "aa", -1) <> 0 or
        rpos("aaaaa",  "aa",  0) <> 0 or
        rpos("aaaaa",  "aa",  1) <> 1 or
        rpos("aaaaa",  "aa",  2) <> 2 or
        rpos("aaaaa",  "aa",  3) <> 3 or
        rpos("aaaaa",  "aa",  4) <> 4 or
        rpos("aaaaa",  "aa",  5) <> 4 then
      writeln(" ***** rpos(STRING, \"aa\", start) does not work correct.");
      okay := FALSE;
    end if;
    if  pos("",       '\0;') <> 0 or
        pos("a",      '\0;') <> 0 or
        pos("ab",     '\0;') <> 0 or
        pos("abc",    '\0;') <> 0 or
        pos("abcde",  '\0;') <> 0 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba", '\0;') <> 0 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz", '\0;') <> 0 then
      writeln(" ***** pos(STRING, \'\\0;\') does not work correct.");
      okay := FALSE;
    end if;
    if  pos("\4096;\0;\0;", '\4096;') <> 1 or
        pos("\0;\4096;\0;", '\4096;') <> 2 or
        pos("\0;\0;\4096;", '\4096;') <> 3 then
      writeln(" ***** pos(STRING, \'\\4096;\') does not work correct.");
      okay := FALSE;
    end if;
    if  pos("",       'a') <> 0 or
        pos("b",      'a') <> 0 or
        pos("a",      'a') <> 1 or
        pos("bc",     'a') <> 0 or
        pos("ab",     'a') <> 1 or
        pos("za",     'a') <> 2 or
        pos("aa",     'a') <> 1 or
        pos("bcd",    'a') <> 0 or
        pos("abc",    'a') <> 1 or
        pos("zab",    'a') <> 2 or
        pos("yza",    'a') <> 3 or
        pos("aab",    'a') <> 1 or
        pos("aba",    'a') <> 1 or
        pos("zaa",    'a') <> 2 or
        pos("aaa",    'a') <> 1 or
        pos("bcdef",  'a') <> 0 or
        pos("abcde",  'a') <> 1 or
        pos("zabcd",  'a') <> 2 or
        pos("yzabc",  'a') <> 3 or
        pos("xyzab",  'a') <> 4 or
        pos("wxyza",  'a') <> 5 or
        pos("ababc",  'a') <> 1 or
        pos("zabad",  'a') <> 2 or
        pos("yzaba",  'a') <> 3 or
        pos("yzaab",  'a') <> 3 or
        pos("xyzaa",  'a') <> 4 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba", 'a') <> 1 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz", 'a') <> 26 then
      writeln(" ***** pos(STRING, \'a\') does not work correct.");
      okay := FALSE;
    end if;
    if  pos("",       'a', 1) <> 0 or
        pos("",       'a', 2) <> 0 or
        pos("",       'a', 9) <> 0 or
        pos("b",      'a', 1) <> 0 or
        pos("b",      'a', 2) <> 0 or
        pos("b",      'a', 9) <> 0 or
        pos("a",      'a', 1) <> 1 or
        pos("a",      'a', 2) <> 0 or
        pos("a",      'a', 9) <> 0 or
        pos("bc",     'a', 1) <> 0 or
        pos("bc",     'a', 2) <> 0 or
        pos("bc",     'a', 3) <> 0 or
        pos("bc",     'a', 9) <> 0 or
        pos("ab",     'a', 1) <> 1 or
        pos("ab",     'a', 2) <> 0 or
        pos("ab",     'a', 3) <> 0 or
        pos("ab",     'a', 9) <> 0 or
        pos("za",     'a', 1) <> 2 or
        pos("za",     'a', 2) <> 2 or
        pos("za",     'a', 3) <> 0 or
        pos("za",     'a', 9) <> 0 or
        pos("aa",     'a', 1) <> 1 or
        pos("aa",     'a', 2) <> 2 or
        pos("aa",     'a', 3) <> 0 or
        pos("aa",     'a', 9) <> 0 or
        pos("bcd",    'a', 1) <> 0 or
        pos("bcd",    'a', 2) <> 0 or
        pos("bcd",    'a', 3) <> 0 or
        pos("bcd",    'a', 4) <> 0 or
        pos("bcd",    'a', 9) <> 0 or
        pos("abc",    'a', 1) <> 1 or
        pos("abc",    'a', 2) <> 0 or
        pos("abc",    'a', 3) <> 0 or
        pos("abc",    'a', 4) <> 0 or
        pos("abc",    'a', 9) <> 0 or
        pos("zab",    'a', 1) <> 2 or
        pos("zab",    'a', 2) <> 2 or
        pos("zab",    'a', 3) <> 0 or
        pos("zab",    'a', 4) <> 0 or
        pos("zab",    'a', 9) <> 0 or
        pos("yza",    'a', 1) <> 3 or
        pos("yza",    'a', 2) <> 3 or
        pos("yza",    'a', 3) <> 3 or
        pos("yza",    'a', 4) <> 0 or
        pos("yza",    'a', 9) <> 0 or
        pos("aab",    'a', 1) <> 1 or
        pos("aab",    'a', 2) <> 2 or
        pos("aab",    'a', 3) <> 0 or
        pos("aab",    'a', 4) <> 0 or
        pos("aab",    'a', 9) <> 0 or
        pos("aba",    'a', 1) <> 1 or
        pos("aba",    'a', 2) <> 3 or
        pos("aba",    'a', 3) <> 3 or
        pos("aba",    'a', 4) <> 0 or
        pos("aba",    'a', 9) <> 0 or
        pos("zaa",    'a', 1) <> 2 or
        pos("zaa",    'a', 2) <> 2 or
        pos("zaa",    'a', 3) <> 3 or
        pos("zaa",    'a', 4) <> 0 or
        pos("zaa",    'a', 9) <> 0 or
        pos("aaa",    'a', 1) <> 1 or
        pos("aaa",    'a', 2) <> 2 or
        pos("aaa",    'a', 3) <> 3 or
        pos("aaa",    'a', 4) <> 0 or
        pos("aaa",    'a', 9) <> 0 or
        pos("bcdef",  'a', 1) <> 0 or
        pos("bcdef",  'a', 2) <> 0 or
        pos("bcdef",  'a', 3) <> 0 or
        pos("bcdef",  'a', 4) <> 0 or
        pos("bcdef",  'a', 5) <> 0 or
        pos("bcdef",  'a', 6) <> 0 or
        pos("bcdef",  'a', 9) <> 0 or
        pos("abcde",  'a', 1) <> 1 or
        pos("abcde",  'a', 2) <> 0 or
        pos("abcde",  'a', 3) <> 0 or
        pos("abcde",  'a', 4) <> 0 or
        pos("abcde",  'a', 5) <> 0 or
        pos("abcde",  'a', 6) <> 0 or
        pos("abcde",  'a', 9) <> 0 or
        pos("zabcd",  'a', 1) <> 2 or
        pos("zabcd",  'a', 2) <> 2 or
        pos("zabcd",  'a', 3) <> 0 or
        pos("zabcd",  'a', 4) <> 0 or
        pos("zabcd",  'a', 5) <> 0 or
        pos("zabcd",  'a', 6) <> 0 or
        pos("zabcd",  'a', 9) <> 0 or
        pos("yzabc",  'a', 1) <> 3 or
        pos("yzabc",  'a', 2) <> 3 or
        pos("yzabc",  'a', 3) <> 3 or
        pos("yzabc",  'a', 4) <> 0 or
        pos("yzabc",  'a', 5) <> 0 or
        pos("yzabc",  'a', 6) <> 0 or
        pos("yzabc",  'a', 9) <> 0 or
        pos("xyzab",  'a', 1) <> 4 or
        pos("xyzab",  'a', 2) <> 4 or
        pos("xyzab",  'a', 3) <> 4 or
        pos("xyzab",  'a', 4) <> 4 or
        pos("xyzab",  'a', 5) <> 0 or
        pos("xyzab",  'a', 6) <> 0 or
        pos("xyzab",  'a', 9) <> 0 or
        pos("wxyza",  'a', 1) <> 5 or
        pos("wxyza",  'a', 2) <> 5 or
        pos("wxyza",  'a', 3) <> 5 or
        pos("wxyza",  'a', 4) <> 5 or
        pos("wxyza",  'a', 5) <> 5 or
        pos("wxyza",  'a', 6) <> 0 or
        pos("wxyza",  'a', 9) <> 0 or
        pos("ababc",  'a', 1) <> 1 or
        pos("ababc",  'a', 2) <> 3 or
        pos("ababc",  'a', 3) <> 3 or
        pos("ababc",  'a', 4) <> 0 or
        pos("ababc",  'a', 5) <> 0 or
        pos("ababc",  'a', 6) <> 0 or
        pos("ababc",  'a', 9) <> 0 or
        pos("zabad",  'a', 1) <> 2 or
        pos("zabad",  'a', 2) <> 2 or
        pos("zabad",  'a', 3) <> 4 or
        pos("zabad",  'a', 4) <> 4 or
        pos("zabad",  'a', 5) <> 0 or
        pos("zabad",  'a', 6) <> 0 or
        pos("zabad",  'a', 9) <> 0 or
        pos("yzaba",  'a', 1) <> 3 or
        pos("yzaba",  'a', 2) <> 3 or
        pos("yzaba",  'a', 3) <> 3 or
        pos("yzaba",  'a', 4) <> 5 or
        pos("yzaba",  'a', 5) <> 5 or
        pos("yzaba",  'a', 6) <> 0 or
        pos("yzaba",  'a', 9) <> 0 or
        pos("yzaab",  'a', 1) <> 3 or
        pos("yzaab",  'a', 2) <> 3 or
        pos("yzaab",  'a', 3) <> 3 or
        pos("yzaab",  'a', 4) <> 4 or
        pos("yzaab",  'a', 5) <> 0 or
        pos("yzaab",  'a', 6) <> 0 or
        pos("yzaab",  'a', 9) <> 0 or
        pos("xyzaa",  'a', 1) <> 4 or
        pos("xyzaa",  'a', 2) <> 4 or
        pos("xyzaa",  'a', 3) <> 4 or
        pos("xyzaa",  'a', 4) <> 4 or
        pos("xyzaa",  'a', 5) <> 5 or
        pos("xyzaa",  'a', 6) <> 0 or
        pos("xyzaa",  'a', 9) <> 0 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  'a',  1) <>  1 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  'a',  2) <> 51 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  'a',  9) <> 51 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  'a', 50) <> 51 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  'a', 51) <> 51 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  'a', 52) <>  0 or
        pos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba",  'a', 99) <>  0 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  'a',  1) <> 26 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  'a',  2) <> 26 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  'a', 25) <> 26 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  'a', 26) <> 26 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  'a', 27) <>  0 or
        pos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz",  'a', 99) <>  0 then
      writeln(" ***** pos(STRING, \'a\', start) does not work correct.");
      okay := FALSE;
    end if;
    if  rpos("",       '\0;') <> 0 or
        rpos("a",      '\0;') <> 0 or
        rpos("ab",     '\0;') <> 0 or
        rpos("abc",    '\0;') <> 0 or
        rpos("abcde",  '\0;') <> 0 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba", '\0;') <> 0 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz", '\0;') <> 0 then
      writeln(" ***** rpos(STRING, '\\0;') does not work correct.");
      okay := FALSE;
    end if;
    if  rpos("\0;\4096;\0;",  '\4096;') <> 2 then
      writeln(" ***** rpos(STRING, '\\4096;') does not work correct.");
      okay := FALSE;
    end if;
    if  rpos("",       'a') <> 0 or
        rpos("b",      'a') <> 0 or
        rpos("a",      'a') <> 1 or
        rpos("bc",     'a') <> 0 or
        rpos("ab",     'a') <> 1 or
        rpos("za",     'a') <> 2 or
        rpos("aa",     'a') <> 2 or
        rpos("bcd",    'a') <> 0 or
        rpos("abc",    'a') <> 1 or
        rpos("zab",    'a') <> 2 or
        rpos("yza",    'a') <> 3 or
        rpos("aab",    'a') <> 2 or
        rpos("aba",    'a') <> 3 or
        rpos("zaa",    'a') <> 3 or
        rpos("aaa",    'a') <> 3 or
        rpos("bcdef",  'a') <> 0 or
        rpos("abcde",  'a') <> 1 or
        rpos("zabcd",  'a') <> 2 or
        rpos("yzabc",  'a') <> 3 or
        rpos("xyzab",  'a') <> 4 or
        rpos("wxyza",  'a') <> 5 or
        rpos("ababc",  'a') <> 3 or
        rpos("zabad",  'a') <> 4 or
        rpos("yzaba",  'a') <> 5 or
        rpos("yzaab",  'a') <> 4 or
        rpos("xyzaa",  'a') <> 5 or
        rpos("abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba", 'a') <> 51 or
        rpos("zyxwvutsrqponmlkjihgfedcbabcdefghijklmnopqrstuvwxyz", 'a') <> 26 then
      writeln(" ***** rpos(STRING, 'a') does not work correct.");
      okay := FALSE;
    end if;
    if  replace(         "abcd",               "",    "d")  <> "abcd" or
        replace(         "abcd",               "b",   "d")  <> "adcd" or
        replace(         "abcd",               "p",   "b")  <> "abcd" or
        replace(         "abcd",               "bc",  "de") <> "aded" or
        replace(         "abcd",               "cb",  "ad") <> "abcd" or
        replace(         "abcd",               "de",  "fg") <> "abcd" or
        replace(         "abcd",               "za",  "az") <> "abcd" or
        replace(         "abcd",  str(         'b'),  "d")  <> "adcd" or
        replace(         "abcd",  str(charExpr('b')), "d")  <> "adcd" or
        replace(striExpr("abcd"),              "",    "d")  <> "abcd" or
        replace(striExpr("abcd"),              "b",   "d")  <> "adcd" or
        replace(striExpr("abcd"),              "p",   "b")  <> "abcd" or
        replace(striExpr("abcd"),              "bc",  "de") <> "aded" or
        replace(striExpr("abcd"),              "cb",  "ad") <> "abcd" or
        replace(striExpr("abcd"),              "de",  "fg") <> "abcd" or
        replace(striExpr("abcd"),              "za",  "az") <> "abcd" or
        replace(striExpr("abcd"), str(         'b'),  "d")  <> "adcd" or
        replace(striExpr("abcd"), str(charExpr('b')), "d")  <> "adcd" then
      writeln(" ***** replace(STRING, STRING, STRING) does not work correct.");
      okay := FALSE;
    end if;
    if  lower("") <> "" or
        lower("a") <> "a" or
        lower("A") <> "a" or
        lower("1") <> "1" or
        lower("\0;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;") <>
              "\0;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;" or
        lower("\16;\17;\18;\19;\20;\21;\22;\23;\24;\25;\26;\27;\28;\29;\30;\31;\127;") <>
              "\16;\17;\18;\19;\20;\21;\22;\23;\24;\25;\26;\27;\28;\29;\30;\31;\127;" or
        lower(" !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~") <>
              " !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~" or
        lower("abcdefghijklmnopqrstuvwxyz") <> "abcdefghijklmnopqrstuvwxyz" or
        lower("ABCDEFGHIJKLMNOPQRSTUVWXYZ") <> "abcdefghijklmnopqrstuvwxyz" or
        lower("0123456789") <> "0123456789" or
        lower("Aa1Bb2Cc3Dd4Ee5Ff6Gg7Hh8Ii9") <> "aa1bb2cc3dd4ee5ff6gg7hh8ii9" or
        lower("aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ") <>
              "aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz" or
        lower("\128;\129;\130;\131;\132;\133;\134;\135;\136;\137;\138;\139;\140;\141;\142;\143;") <>
              "\128;\129;\130;\131;\132;\133;\134;\135;\136;\137;\138;\139;\140;\141;\142;\143;" or
        lower("\144;\145;\146;\147;\148;\149;\150;\151;\152;\153;\154;\155;\156;\157;\158;\159;") <>
              "\144;\145;\146;\147;\148;\149;\150;\151;\152;\153;\154;\155;\156;\157;\158;\159;" or
        lower("\160;¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿") <>
              "\160;¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿" or
        lower("ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ") <>
              "àáâãäåæçèéêëìíîïðñòóôõö×øùúûüýþßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" or
        lower("ĀāĂăĄąĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİiĲĳĴĵĶķĸĹĺĻļĽľĿ") <>
              "āāăăąąććĉĉċċččďďđđēēĕĕėėęęěěĝĝğğġġģģĥĥħħĩĩīīĭĭįįiiĳĳĵĵķķĸĺĺļļľľŀ" or
        lower("ŀŁłŃńŅņŇňŉŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſ") <>
              "ŀłłńńņņňňŉŋŋōōŏŏőőœœŕŕŗŗřřśśŝŝşşššţţťťŧŧũũūūŭŭůůűűųųŵŵŷŷÿźźżżžžſ" or
        lower("ƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿ") <>
              "ƀɓƃƃƅƅɔƈƈɖɗƌƌƍǝəɛƒƒɠɣƕɩɨƙƙƚƛɯɲƞɵơơƣƣƥƥʀƨƨʃƪƫƭƭʈưưʊʋƴƴƶƶʒƹƹƺƻƽƽƾƿ" or
        lower("ǀǁǂǃǄǅǆǇǈǉǊǋǌǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰǱǲǳǴǵǶǷǸǹǺǻǼǽǾǿ") <>
              "ǀǁǂǃǆǆǆǉǉǉǌǌǌǎǎǐǐǒǒǔǔǖǖǘǘǚǚǜǜǝǟǟǡǡǣǣǥǥǧǧǩǩǫǫǭǭǯǯǰǳǳǳǵǵƕƿǹǹǻǻǽǽǿǿ" or
        lower("ȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿ") <>
              "ȁȁȃȃȅȅȇȇȉȉȋȋȍȍȏȏȑȑȓȓȕȕȗȗșșțțȝȝȟȟƞȡȣȣȥȥȧȧȩȩȫȫȭȭȯȯȱȱȳȳȴȵȶȷȸȹⱥȼȼƚⱦȿ" or
        lower("ɀɁɂɃɄɅɆɇɈɉɊɋɌɍɎɏ") <>
              "ɀɂɂƀʉʌɇɇɉɉɋɋɍɍɏɏ" or
        lower("ͰͱͲͳʹ͵Ͷͷͺͻͼͽ;΄΅Ά·ΈΉΊΌΎΏ") <>
              "ͱͱͳͳʹ͵ͷͷͺͻͼͽ;΄΅ά·έήίόύώ" or
        lower("ΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ\16#3A2;ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϏ") <>
              "ΐαβγδεζηθικλμνξοπρ\16#3A2;στυφχψωϊϋάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϗ" or
        lower("ϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵ϶ϷϸϹϺϻϼϽϾϿ") <>
              "ϐϑϒϓϔϕϖϗϙϙϛϛϝϝϟϟϡϡϣϣϥϥϧϧϩϩϫϫϭϭϯϯϰϱϲϳθϵ϶ϸϸϲϻϻϼͻͼͽ" or
        lower("ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп") <>
              "ѐёђѓєѕіїјљњћќѝўџабвгдежзийклмнопрстуфхцчшщъыьэюяабвгдежзийклмноп" or
        lower("рстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿ") <>
              "рстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѡѡѣѣѥѥѧѧѩѩѫѫѭѭѯѯѱѱѳѳѵѵѷѷѹѹѻѻѽѽѿѿ" or
        lower("Ҁҁ҂ ҃ ҄ ҅ ҆ ҇ ҈ ҉ҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿ") <>
              "ҁҁ҂ ҃ ҄ ҅ ҆ ҇ ҈ ҉ҋҋҍҍҏҏґґғғҕҕҗҗҙҙққҝҝҟҟҡҡңңҥҥҧҧҩҩҫҫҭҭүүұұҳҳҵҵҷҷҹҹһһҽҽҿҿ" or
        lower("ӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӏӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹӺӻӼӽӾӿ") <>
              "ӏӂӂӄӄӆӆӈӈӊӊӌӌӎӎӏӑӑӓӓӕӕӗӗәәӛӛӝӝӟӟӡӡӣӣӥӥӧӧөөӫӫӭӭӯӯӱӱӳӳӵӵӷӷӹӹӻӻӽӽӿӿ" then
      writeln(" ***** lower(STRING) does not work correct.");
      okay := FALSE;
    end if;
    if  upper("") <> "" or
        upper("a") <> "A" or
        upper("A") <> "A" or
        upper("1") <> "1" or
        upper("\0;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;") <>
              "\0;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;" or
        upper("\16;\17;\18;\19;\20;\21;\22;\23;\24;\25;\26;\27;\28;\29;\30;\31;\127;") <>
              "\16;\17;\18;\19;\20;\21;\22;\23;\24;\25;\26;\27;\28;\29;\30;\31;\127;" or
        upper(" !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~") <>
              " !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~" or
        upper("abcdefghijklmnopqrstuvwxyz") <> "ABCDEFGHIJKLMNOPQRSTUVWXYZ" or
        upper("ABCDEFGHIJKLMNOPQRSTUVWXYZ") <> "ABCDEFGHIJKLMNOPQRSTUVWXYZ" or
        upper("0123456789") <> "0123456789" or
        upper("Aa1Bb2Cc3Dd4Ee5Ff6Gg7Hh8Ii9") <> "AA1BB2CC3DD4EE5FF6GG7HH8II9" or
        upper("aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ") <>
              "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ" or
        upper("\128;\129;\130;\131;\132;\133;\134;\135;\136;\137;\138;\139;\140;\141;\142;\143;") <>
              "\128;\129;\130;\131;\132;\133;\134;\135;\136;\137;\138;\139;\140;\141;\142;\143;" or
        upper("\144;\145;\146;\147;\148;\149;\150;\151;\152;\153;\154;\155;\156;\157;\158;\159;") <>
              "\144;\145;\146;\147;\148;\149;\150;\151;\152;\153;\154;\155;\156;\157;\158;\159;" or
        upper("\160;¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿") <>
              "\160;¡¢£¤¥¦§¨©ª«¬­®¯°±²³´Μ¶·¸¹º»¼½¾¿" or
        upper("ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ") <>
              "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ÷ØÙÚÛÜÝÞŸ" or
        upper("ĀāĂăĄąĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįIıĲĳĴĵĶķĸĹĺĻļĽľĿ") <>
              "ĀĀĂĂĄĄĆĆĈĈĊĊČČĎĎĐĐĒĒĔĔĖĖĘĘĚĚĜĜĞĞĠĠĢĢĤĤĦĦĨĨĪĪĬĬĮĮIIĲĲĴĴĶĶĸĹĹĻĻĽĽĿ" or
        upper("ŀŁłŃńŅņŇňŉŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżžSſ") <>
              "ĿŁŁŃŃŅŅŇŇŉŊŊŌŌŎŎŐŐŒŒŔŔŖŖŘŘŚŚŜŜŞŞŠŠŢŢŤŤŦŦŨŨŪŪŬŬŮŮŰŰŲŲŴŴŶŶŸŹŹŻŻŽSS" or
        upper("ƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿ") <>
              "ɃƁƂƂƄƄƆƇƇƉƊƋƋƍƎƏƐƑƑƓƔǶƖƗƘƘȽƛƜƝȠƟƠƠƢƢƤƤƦƧƧƩƪƫƬƬƮƯƯƱƲƳƳƵƵƷƸƸƺƻƼƼƾǷ" or
        upper("ǀǁǂǃǄǅǆǇǈǉǊǋǌǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰǱǲǳǴǵǶǷǸǹǺǻǼǽǾǿ") <>
              "ǀǁǂǃǄǄǄǇǇǇǊǊǊǍǍǏǏǑǑǓǓǕǕǗǗǙǙǛǛƎǞǞǠǠǢǢǤǤǦǦǨǨǪǪǬǬǮǮǰǱǱǱǴǴǶǷǸǸǺǺǼǼǾǾ" or
        upper("ȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿ") <>
              "ȀȀȂȂȄȄȆȆȈȈȊȊȌȌȎȎȐȐȒȒȔȔȖȖȘȘȚȚȜȜȞȞȠȡȢȢȤȤȦȦȨȨȪȪȬȬȮȮȰȰȲȲȴȵȶȷȸȹȺȻȻȽȾⱾ" or
        upper("ɀɁɂɃɄɅɆɇɈɉɊɋɌɍɎɏ") <>
              "ⱿɁɁɃɄɅɆɆɈɈɊɊɌɌɎɎ" or
        upper("ͰͱͲͳʹ͵Ͷͷͺͻͼͽ;΄΅Ά·ΈΉΊΌΎΏ") <>
              "ͰͰͲͲʹ͵ͶͶͺϽϾϿ;΄΅Ά·ΈΉΊΌΎΏ" or
        upper("ΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ\16#3A2;ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϏ") <>
              "ΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ\16#3A2;ΣΤΥΦΧΨΩΪΫΆΈΉΊΰΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΣΤΥΦΧΨΩΪΫΌΎΏϏ" or
        upper("ϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵ϶ϷϸϹϺϻϼϽϾϿ") <>
              "ΒΘϒϓϔΦΠϏϘϘϚϚϜϜϞϞϠϠϢϢϤϤϦϦϨϨϪϪϬϬϮϮΚΡϹϳϴΕ϶ϷϷϹϺϺϼϽϾϿ" or
        upper("ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп") <>
              "ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯАБВГДЕЖЗИЙКЛМНОП" or
        upper("рстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿ") <>
              "РСТУФХЦЧШЩЪЫЬЭЮЯЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏѠѠѢѢѤѤѦѦѨѨѪѪѬѬѮѮѰѰѲѲѴѴѶѶѸѸѺѺѼѼѾѾ" or
        upper("Ҁҁ҂ ҃ ҄ ҅ ҆ ҇ ҈ ҉ҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿ") <>
              "ҀҀ҂ ҃ ҄ ҅ ҆ ҇ ҈ ҉ҊҊҌҌҎҎҐҐҒҒҔҔҖҖҘҘҚҚҜҜҞҞҠҠҢҢҤҤҦҦҨҨҪҪҬҬҮҮҰҰҲҲҴҴҶҶҸҸҺҺҼҼҾҾ" or
        upper("ӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӏӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹӺӻӼӽӾӿ") <>
              "ӀӁӁӃӃӅӅӇӇӉӉӋӋӍӍӀӐӐӒӒӔӔӖӖӘӘӚӚӜӜӞӞӠӠӢӢӤӤӦӦӨӨӪӪӬӬӮӮӰӰӲӲӴӴӶӶӸӸӺӺӼӼӾӾ" then
      writeln(" ***** upper(STRING) does not work correct.");
      okay := FALSE;
    end if;
    if  trim(""          ) <> "" then
      writeln(" ***** trim(\"\") does not work correct.");
      okay := FALSE;
    end if;
    if
        trim(" "         ) <> "" then
      writeln(" ***** trim(\" \") does not work correct.");
      okay := FALSE;
    end if;
    if  trim("  "        ) <> "" or
        trim("   "       ) <> "" or
        trim("      "    ) <> "" or
        trim("\t"        ) <> "" or
        trim("\t "       ) <> "" or
        trim(" \t"       ) <> "" or
        trim(" \t "      ) <> "" or
        trim("  \t  "    ) <> "" or
        trim("\t\t"      ) <> "" or
        trim("\t\t "     ) <> "" or
        trim(" \t\t"     ) <> "" or
        trim(" \t\t "    ) <> "" or
        trim("  \t\t  "  ) <> "" or
        trim("\t \t"     ) <> "" or
        trim("\t \t "    ) <> "" or
        trim(" \t \t"    ) <> "" or
        trim(" \t \t "   ) <> "" or
        trim("  \t \t  " ) <> "" or
        trim("\n"        ) <> "" or
        trim("\n "       ) <> "" or
        trim(" \n"       ) <> "" or
        trim(" \n "      ) <> "" or
        trim("  \n  "    ) <> "" or
        trim("\n\n"      ) <> "" or
        trim("\n\n "     ) <> "" or
        trim(" \n\n"     ) <> "" or
        trim(" \n\n "    ) <> "" or
        trim("  \n\n  "  ) <> "" or
        trim("\n \n"     ) <> "" or
        trim("\n \n "    ) <> "" or
        trim(" \n \n"    ) <> "" or
        trim(" \n \n "   ) <> "" or
        trim("  \n \n  " ) <> "" then
      writeln(" ***** trim(STRING) does not work correct.");
      okay := FALSE;
    end if;
    if  trim("A"         ) <> "A" or
        trim("A "        ) <> "A" or
        trim(" A"        ) <> "A" or
        trim(" A "       ) <> "A" or
        trim(" A  "      ) <> "A" or
        trim("  A "      ) <> "A" or
        trim("  A  "     ) <> "A" or
        trim("  A   "    ) <> "A" or
        trim("   A  "    ) <> "A" or
        trim("   A   "   ) <> "A" or
        trim("AB"        ) <> "AB" or
        trim("AB "       ) <> "AB" or
        trim(" AB"       ) <> "AB" or
        trim(" AB "      ) <> "AB" or
        trim(" AB  "     ) <> "AB" or
        trim("  AB "     ) <> "AB" or
        trim("  AB  "    ) <> "AB" or
        trim("  AB   "   ) <> "AB" or
        trim("   AB  "   ) <> "AB" or
        trim("   AB   "  ) <> "AB" or
        trim("A B"       ) <> "A B" or
        trim("A B "      ) <> "A B" or
        trim(" A B"      ) <> "A B" or
        trim(" A B "     ) <> "A B" or
        trim(" A B  "    ) <> "A B" or
        trim("  A B "    ) <> "A B" or
        trim("  A B  "   ) <> "A B" or
        trim("  A B   "  ) <> "A B" or
        trim("   A B  "  ) <> "A B" or
        trim("   A B   " ) <> "A B" or
        trim("A9 B"      ) <> "A9 B" or
        trim("A9 B "     ) <> "A9 B" or
        trim(" A9 B"     ) <> "A9 B" or
        trim(" A9 B "    ) <> "A9 B" or
        trim(" A9 B  "   ) <> "A9 B" or
        trim("  A9 B "   ) <> "A9 B" or
        trim("  A9 B  "  ) <> "A9 B" or
        trim("  A9 B   " ) <> "A9 B" or
        trim("   A9 B  " ) <> "A9 B" or
        trim("   A9 B   ") <> "A9 B" or
        trim("A B9"      ) <> "A B9" or
        trim("A B9 "     ) <> "A B9" or
        trim(" A B9"     ) <> "A B9" or
        trim(" A B9 "    ) <> "A B9" or
        trim(" A B9  "   ) <> "A B9" or
        trim("  A B9 "   ) <> "A B9" or
        trim("  A B9  "  ) <> "A B9" or
        trim("  A B9   " ) <> "A B9" or
        trim("   A B9  " ) <> "A B9" or
        trim("   A B9   ") <> "A B9" or
        trim("! !"       ) <> "! !" or
        trim("! ! "      ) <> "! !" or
        trim(" ! !"      ) <> "! !" or
        trim(" ! ! "     ) <> "! !" or
        trim(" ! !  "    ) <> "! !" or
        trim("  ! ! "    ) <> "! !" or
        trim("  ! !  "   ) <> "! !" or
        trim("  ! !   "  ) <> "! !" or
        trim("   ! !  "  ) <> "! !" or
        trim("   ! !   " ) <> "! !" or
        trim("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;x\
              \\17;\18;\19;\20;\21;\22;\23;\24;\25;\26;\27;\28;\29;\30;\31;\32;") <> "x" or
        trim("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;\
              \\17;\18;\19;\20;\21;\22;\23;\24;\25;\26;\27;\28;\29;\30;\31;\32;") <> "" then
      writeln(" ***** trim(STRING) does not work correct.");
      okay := FALSE;
    end if;
    if  ltrim(""          ) <> "" then
      writeln(" ***** ltrim(\"\") does not work correct.");
      okay := FALSE;
    end if;
    if
        ltrim(" "         ) <> "" then
      writeln(" ***** ltrim(\" \") does not work correct.");
      okay := FALSE;
    end if;
    if  ltrim("  "        ) <> "" or
        ltrim("   "       ) <> "" or
        ltrim("      "    ) <> "" or
        ltrim("\t"        ) <> "" or
        ltrim("\t "       ) <> "" or
        ltrim(" \t"       ) <> "" or
        ltrim(" \t "      ) <> "" or
        ltrim("  \t  "    ) <> "" or
        ltrim("\t\t"      ) <> "" or
        ltrim("\t\t "     ) <> "" or
        ltrim(" \t\t"     ) <> "" or
        ltrim(" \t\t "    ) <> "" or
        ltrim("  \t\t  "  ) <> "" or
        ltrim("\t \t"     ) <> "" or
        ltrim("\t \t "    ) <> "" or
        ltrim(" \t \t"    ) <> "" or
        ltrim(" \t \t "   ) <> "" or
        ltrim("  \t \t  " ) <> "" or
        ltrim("\n"        ) <> "" or
        ltrim("\n "       ) <> "" or
        ltrim(" \n"       ) <> "" or
        ltrim(" \n "      ) <> "" or
        ltrim("  \n  "    ) <> "" or
        ltrim("\n\n"      ) <> "" or
        ltrim("\n\n "     ) <> "" or
        ltrim(" \n\n"     ) <> "" or
        ltrim(" \n\n "    ) <> "" or
        ltrim("  \n\n  "  ) <> "" or
        ltrim("\n \n"     ) <> "" or
        ltrim("\n \n "    ) <> "" or
        ltrim(" \n \n"    ) <> "" or
        ltrim(" \n \n "   ) <> "" or
        ltrim("  \n \n  " ) <> "" then
      writeln(" ***** ltrim(STRING) does not work correct.");
      okay := FALSE;
    end if;
    if  ltrim("A"         ) <> "A" or
        ltrim("A "        ) <> "A " or
        ltrim(" A"        ) <> "A" or
        ltrim(" A "       ) <> "A " or
        ltrim(" A  "      ) <> "A  " or
        ltrim("  A "      ) <> "A " or
        ltrim("  A  "     ) <> "A  " or
        ltrim("  A   "    ) <> "A   " or
        ltrim("   A  "    ) <> "A  " or
        ltrim("   A   "   ) <> "A   " or
        ltrim("AB"        ) <> "AB" or
        ltrim("AB "       ) <> "AB " or
        ltrim(" AB"       ) <> "AB" or
        ltrim(" AB "      ) <> "AB " or
        ltrim(" AB  "     ) <> "AB  " or
        ltrim("  AB "     ) <> "AB " or
        ltrim("  AB  "    ) <> "AB  " or
        ltrim("  AB   "   ) <> "AB   " or
        ltrim("   AB  "   ) <> "AB  " or
        ltrim("   AB   "  ) <> "AB   " or
        ltrim("A B"       ) <> "A B" or
        ltrim("A B "      ) <> "A B " or
        ltrim(" A B"      ) <> "A B" or
        ltrim(" A B "     ) <> "A B " or
        ltrim(" A B  "    ) <> "A B  " or
        ltrim("  A B "    ) <> "A B " or
        ltrim("  A B  "   ) <> "A B  " or
        ltrim("  A B   "  ) <> "A B   " or
        ltrim("   A B  "  ) <> "A B  " or
        ltrim("   A B   " ) <> "A B   " or
        ltrim("A9 B"      ) <> "A9 B" or
        ltrim("A9 B "     ) <> "A9 B " or
        ltrim(" A9 B"     ) <> "A9 B" or
        ltrim(" A9 B "    ) <> "A9 B " or
        ltrim(" A9 B  "   ) <> "A9 B  " or
        ltrim("  A9 B "   ) <> "A9 B " or
        ltrim("  A9 B  "  ) <> "A9 B  " or
        ltrim("  A9 B   " ) <> "A9 B   " or
        ltrim("   A9 B  " ) <> "A9 B  " or
        ltrim("   A9 B   ") <> "A9 B   " or
        ltrim("A B9"      ) <> "A B9" or
        ltrim("A B9 "     ) <> "A B9 " or
        ltrim(" A B9"     ) <> "A B9" or
        ltrim(" A B9 "    ) <> "A B9 " or
        ltrim(" A B9  "   ) <> "A B9  " or
        ltrim("  A B9 "   ) <> "A B9 " or
        ltrim("  A B9  "  ) <> "A B9  " or
        ltrim("  A B9   " ) <> "A B9   " or
        ltrim("   A B9  " ) <> "A B9  " or
        ltrim("   A B9   ") <> "A B9   " or
        ltrim("! !"       ) <> "! !" or
        ltrim("! ! "      ) <> "! ! " or
        ltrim(" ! !"      ) <> "! !" or
        ltrim(" ! ! "     ) <> "! ! " or
        ltrim(" ! !  "    ) <> "! !  " or
        ltrim("  ! ! "    ) <> "! ! " or
        ltrim("  ! !  "   ) <> "! !  " or
        ltrim("  ! !   "  ) <> "! !   " or
        ltrim("   ! !  "  ) <> "! !  " or
        ltrim("   ! !   " ) <> "! !   " or
        ltrim("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;x\
              \\17;\18;\19;\20;\21;\22;\23;\24;\25;\26;\27;\28;\29;\30;\31;\32;") <>
              "x\17;\18;\19;\20;\21;\22;\23;\24;\25;\26;\27;\28;\29;\30;\31;\32;" or
        ltrim("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;\
              \\17;\18;\19;\20;\21;\22;\23;\24;\25;\26;\27;\28;\29;\30;\31;\32;") <> "" then
      writeln(" ***** ltrim(STRING) does not work correct.");
      okay := FALSE;
    end if;
    if  rtrim(""          ) <> "" then
      writeln(" ***** rtrim(\"\") does not work correct.");
      okay := FALSE;
    end if;
    if
        rtrim(" "         ) <> "" then
      writeln(" ***** rtrim(\" \") does not work correct.");
      okay := FALSE;
    end if;
    if  rtrim("  "        ) <> "" or
        rtrim("   "       ) <> "" or
        rtrim("      "    ) <> "" or
        rtrim("\t"        ) <> "" or
        rtrim("\t "       ) <> "" or
        rtrim(" \t"       ) <> "" or
        rtrim(" \t "      ) <> "" or
        rtrim("  \t  "    ) <> "" or
        rtrim("\t\t"      ) <> "" or
        rtrim("\t\t "     ) <> "" or
        rtrim(" \t\t"     ) <> "" or
        rtrim(" \t\t "    ) <> "" or
        rtrim("  \t\t  "  ) <> "" or
        rtrim("\t \t"     ) <> "" or
        rtrim("\t \t "    ) <> "" or
        rtrim(" \t \t"    ) <> "" or
        rtrim(" \t \t "   ) <> "" or
        rtrim("  \t \t  " ) <> "" or
        rtrim("\n"        ) <> "" or
        rtrim("\n "       ) <> "" or
        rtrim(" \n"       ) <> "" or
        rtrim(" \n "      ) <> "" or
        rtrim("  \n  "    ) <> "" or
        rtrim("\n\n"      ) <> "" or
        rtrim("\n\n "     ) <> "" or
        rtrim(" \n\n"     ) <> "" or
        rtrim(" \n\n "    ) <> "" or
        rtrim("  \n\n  "  ) <> "" or
        rtrim("\n \n"     ) <> "" or
        rtrim("\n \n "    ) <> "" or
        rtrim(" \n \n"    ) <> "" or
        rtrim(" \n \n "   ) <> "" or
        rtrim("  \n \n  " ) <> "" then
      writeln(" ***** rtrim(STRING) does not work correct.");
      okay := FALSE;
    end if;
    if  rtrim("A"         ) <> "A" or
        rtrim("A "        ) <> "A" or
        rtrim(" A"        ) <> " A" or
        rtrim(" A "       ) <> " A" or
        rtrim(" A  "      ) <> " A" or
        rtrim("  A "      ) <> "  A" or
        rtrim("  A  "     ) <> "  A" or
        rtrim("  A   "    ) <> "  A" or
        rtrim("   A  "    ) <> "   A" or
        rtrim("   A   "   ) <> "   A" or
        rtrim("AB"        ) <> "AB" or
        rtrim("AB "       ) <> "AB" or
        rtrim(" AB"       ) <> " AB" or
        rtrim(" AB "      ) <> " AB" or
        rtrim(" AB  "     ) <> " AB" or
        rtrim("  AB "     ) <> "  AB" or
        rtrim("  AB  "    ) <> "  AB" or
        rtrim("  AB   "   ) <> "  AB" or
        rtrim("   AB  "   ) <> "   AB" or
        rtrim("   AB   "  ) <> "   AB" or
        rtrim("A B"       ) <> "A B" or
        rtrim("A B "      ) <> "A B" or
        rtrim(" A B"      ) <> " A B" or
        rtrim(" A B "     ) <> " A B" or
        rtrim(" A B  "    ) <> " A B" or
        rtrim("  A B "    ) <> "  A B" or
        rtrim("  A B  "   ) <> "  A B" or
        rtrim("  A B   "  ) <> "  A B" or
        rtrim("   A B  "  ) <> "   A B" or
        rtrim("   A B   " ) <> "   A B" or
        rtrim("A9 B"      ) <> "A9 B" or
        rtrim("A9 B "     ) <> "A9 B" or
        rtrim(" A9 B"     ) <> " A9 B" or
        rtrim(" A9 B "    ) <> " A9 B" or
        rtrim(" A9 B  "   ) <> " A9 B" or
        rtrim("  A9 B "   ) <> "  A9 B" or
        rtrim("  A9 B  "  ) <> "  A9 B" or
        rtrim("  A9 B   " ) <> "  A9 B" or
        rtrim("   A9 B  " ) <> "   A9 B" or
        rtrim("   A9 B   ") <> "   A9 B" or
        rtrim("A B9"      ) <> "A B9" or
        rtrim("A B9 "     ) <> "A B9" or
        rtrim(" A B9"     ) <> " A B9" or
        rtrim(" A B9 "    ) <> " A B9" or
        rtrim(" A B9  "   ) <> " A B9" or
        rtrim("  A B9 "   ) <> "  A B9" or
        rtrim("  A B9  "  ) <> "  A B9" or
        rtrim("  A B9   " ) <> "  A B9" or
        rtrim("   A B9  " ) <> "   A B9" or
        rtrim("   A B9   ") <> "   A B9" or
        rtrim("! !"       ) <> "! !" or
        rtrim("! ! "      ) <> "! !" or
        rtrim(" ! !"      ) <> " ! !" or
        rtrim(" ! ! "     ) <> " ! !" or
        rtrim(" ! !  "    ) <> " ! !" or
        rtrim("  ! ! "    ) <> "  ! !" or
        rtrim("  ! !  "   ) <> "  ! !" or
        rtrim("  ! !   "  ) <> "  ! !" or
        rtrim("   ! !  "  ) <> "   ! !" or
        rtrim("   ! !   " ) <> "   ! !" or
        rtrim("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;x\
              \\17;\18;\19;\20;\21;\22;\23;\24;\25;\26;\27;\28;\29;\30;\31;\32;") <>
              "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;x" or
        rtrim("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;\
              \\17;\18;\19;\20;\21;\22;\23;\24;\25;\26;\27;\28;\29;\30;\31;\32;") <> "" then
      writeln(" ***** rtrim(STRING) does not work correct.");
      okay := FALSE;
    end if;
    if okay then
      writeln("String functions work correct.");
    end if;
  end func;


const proc: check_string_split is func
  local
    var boolean: okay is TRUE;
  begin
    if  split("", '+') <> [] ("") or
        split("+", '+') <> [] ("", "") or
        split("A", '+') <> [] ("A") or
        split("++", '+') <> [] ("", "", "") or
        split("+A", '+') <> [] ("", "A") or
        split("A+", '+') <> [] ("A", "") or
        split("AB", '+') <> [] ("AB") or
        split("+++", '+') <> [] ("", "", "", "") or
        split("A++", '+') <> [] ("A", "", "") or
        split("+A+", '+') <> [] ("", "A", "") or
        split("++A", '+') <> [] ("", "", "A") or
        split("AB+", '+') <> [] ("AB", "") or
        split("A+B", '+') <> [] ("A", "B") or
        split("+AB", '+') <> [] ("", "AB") or
        split("ABC", '+') <> [] ("ABC") or
        split("++++", '+') <> [] ("", "", "", "", "") or
        split("A+++", '+') <> [] ("A", "", "", "") or
        split("+A++", '+') <> [] ("", "A", "", "") or
        split("++A+", '+') <> [] ("", "", "A", "") or
        split("+++A", '+') <> [] ("", "", "", "A") or
        split("AB++", '+') <> [] ("AB", "", "") or
        split("A+B+", '+') <> [] ("A", "B", "") or
        split("A++B", '+') <> [] ("A", "", "B") or
        split("+AB+", '+') <> [] ("", "AB", "") or
        split("+A+B", '+') <> [] ("", "A", "B") or
        split("++AB", '+') <> [] ("", "", "AB") or
        split("ABC+", '+') <> [] ("ABC", "") or
        split("AB+C", '+') <> [] ("AB", "C") or
        split("A+BC", '+') <> [] ("A", "BC") or
        split("+ABC", '+') <> [] ("", "ABC") or
        split("ABCD", '+') <> [] ("ABCD") or
        split("+++++", '+') <> [] ("", "", "", "", "", "") or
        split("A++++", '+') <> [] ("A", "", "", "", "") or
        split("+A+++", '+') <> [] ("", "A", "", "", "") or
        split("++A++", '+') <> [] ("", "", "A", "", "") or
        split("+++A+", '+') <> [] ("", "", "", "A", "") or
        split("++++A", '+') <> [] ("", "", "", "", "A") or
        split("AB+++", '+') <> [] ("AB", "", "", "") or
        split("A+B++", '+') <> [] ("A", "B", "", "") or
        split("A++B+", '+') <> [] ("A", "", "B", "") or
        split("A+++B", '+') <> [] ("A", "", "", "B") or
        split("+AB++", '+') <> [] ("", "AB", "", "") or
        split("+A+B+", '+') <> [] ("", "A", "B", "") or
        split("+A++B", '+') <> [] ("", "A", "", "B") or
        split("++AB+", '+') <> [] ("", "", "AB", "") or
        split("++A+B", '+') <> [] ("", "", "A", "B") or
        split("+++AB", '+') <> [] ("", "", "", "AB") or
        split("ABC++", '+') <> [] ("ABC", "", "") or
        split("AB+C+", '+') <> [] ("AB", "C", "") or
        split("AB++C", '+') <> [] ("AB", "", "C") or
        split("A+BC+", '+') <> [] ("A", "BC", "") or
        split("A+B+C", '+') <> [] ("A", "B", "C") or
        split("A++BC", '+') <> [] ("A", "", "BC") or
        split("+ABC+", '+') <> [] ("", "ABC", "") or
        split("+AB+C", '+') <> [] ("", "AB", "C") or
        split("+A+BC", '+') <> [] ("", "A", "BC") or
        split("++ABC", '+') <> [] ("", "", "ABC") or
        split("ABCD+", '+') <> [] ("ABCD", "") or
        split("ABC+D", '+') <> [] ("ABC", "D") or
        split("AB+CD", '+') <> [] ("AB", "CD") or
        split("A+BCD", '+') <> [] ("A", "BCD") or
        split("+ABCD", '+') <> [] ("", "ABCD") or
        split("ABCDE", '+') <> [] ("ABCDE") or
        split("++++++", '+') <> [] ("", "", "", "", "", "", "") or
        split("A+++++", '+') <> [] ("A", "", "", "", "", "") or
        split("+A++++", '+') <> [] ("", "A", "", "", "", "") or
        split("++A+++", '+') <> [] ("", "", "A", "", "", "") or
        split("+++A++", '+') <> [] ("", "", "", "A", "", "") or
        split("++++A+", '+') <> [] ("", "", "", "", "A", "") or
        split("+++++A", '+') <> [] ("", "", "", "", "", "A") or
        split("AB++++", '+') <> [] ("AB", "", "", "", "") or
        split("A+B+++", '+') <> [] ("A", "B", "", "", "") or
        split("A++B++", '+') <> [] ("A", "", "B", "", "") or
        split("A+++B+", '+') <> [] ("A", "", "", "B", "") or
        split("A++++B", '+') <> [] ("A", "", "", "", "B") or
        split("+AB+++", '+') <> [] ("", "AB", "", "", "") or
        split("+A+B++", '+') <> [] ("", "A", "B", "", "") or
        split("+A++B+", '+') <> [] ("", "A", "", "B", "") or
        split("+A+++B", '+') <> [] ("", "A", "", "", "B") or
        split("++AB++", '+') <> [] ("", "", "AB", "", "") or
        split("++A+B+", '+') <> [] ("", "", "A", "B", "") or
        split("++A++B", '+') <> [] ("", "", "A", "", "B") or
        split("+++AB+", '+') <> [] ("", "", "", "AB", "") or
        split("+++A+B", '+') <> [] ("", "", "", "A", "B") or
        split("++++AB", '+') <> [] ("", "", "", "", "AB") or
        split("ABC+++", '+') <> [] ("ABC", "", "", "") or
        split("AB+C++", '+') <> [] ("AB", "C", "", "") or
        split("AB++C+", '+') <> [] ("AB", "", "C", "") or
        split("AB+++C", '+') <> [] ("AB", "", "", "C") or
        split("A+BC++", '+') <> [] ("A", "BC", "", "") or
        split("A+B+C+", '+') <> [] ("A", "B", "C", "") or
        split("A+B++C", '+') <> [] ("A", "B", "", "C") or
        split("A++BC+", '+') <> [] ("A", "", "BC", "") or
        split("A++B+C", '+') <> [] ("A", "", "B", "C") or
        split("A+++BC", '+') <> [] ("A", "", "", "BC") or
        split("+ABC++", '+') <> [] ("", "ABC", "", "") or
        split("+AB+C+", '+') <> [] ("", "AB", "C", "") or
        split("+AB++C", '+') <> [] ("", "AB", "", "C") or
        split("+A+BC+", '+') <> [] ("", "A", "BC", "") or
        split("+A+B+C", '+') <> [] ("", "A", "B", "C") or
        split("+A++BC", '+') <> [] ("", "A", "", "BC") or
        split("++ABC+", '+') <> [] ("", "", "ABC", "") or
        split("++AB+C", '+') <> [] ("", "", "AB", "C") or
        split("++A+BC", '+') <> [] ("", "", "A", "BC") or
        split("+++ABC", '+') <> [] ("", "", "", "ABC") or
        split("ABCD++", '+') <> [] ("ABCD", "", "") or
        split("ABC+D+", '+') <> [] ("ABC", "D", "") or
        split("ABC++D", '+') <> [] ("ABC", "", "D") or
        split("AB+CD+", '+') <> [] ("AB", "CD", "") or
        split("AB+C+D", '+') <> [] ("AB", "C", "D") or
        split("AB++CD", '+') <> [] ("AB", "", "CD") or
        split("A+BCD+", '+') <> [] ("A", "BCD", "") or
        split("A+BC+D", '+') <> [] ("A", "BC", "D") or
        split("A+B+CD", '+') <> [] ("A", "B", "CD") or
        split("A++BCD", '+') <> [] ("A", "", "BCD") or
        split("+ABCD+", '+') <> [] ("", "ABCD", "") or
        split("+ABC+D", '+') <> [] ("", "ABC", "D") or
        split("+AB+CD", '+') <> [] ("", "AB", "CD") or
        split("+A+BCD", '+') <> [] ("", "A", "BCD") or
        split("++ABCD", '+') <> [] ("", "", "ABCD") or
        split("ABCDE+", '+') <> [] ("ABCDE", "") or
        split("ABCD+E", '+') <> [] ("ABCD", "E") or
        split("ABC+DE", '+') <> [] ("ABC", "DE") or
        split("AB+CDE", '+') <> [] ("AB", "CDE") or
        split("A+BCDE", '+') <> [] ("A", "BCDE") or
        split("+ABCDE", '+') <> [] ("", "ABCDE") or
        split("ABCDEF", '+') <> [] ("ABCDEF") or
        split("+++++++", '+') <> [] ("", "", "", "", "", "", "", "") or
        split("A++++++", '+') <> [] ("A", "", "", "", "", "", "") or
        split("+A+++++", '+') <> [] ("", "A", "", "", "", "", "") or
        split("++A++++", '+') <> [] ("", "", "A", "", "", "", "") or
        split("+++A+++", '+') <> [] ("", "", "", "A", "", "", "") or
        split("++++A++", '+') <> [] ("", "", "", "", "A", "", "") or
        split("+++++A+", '+') <> [] ("", "", "", "", "", "A", "") or
        split("++++++A", '+') <> [] ("", "", "", "", "", "", "A") or
        split("AB+++++", '+') <> [] ("AB", "", "", "", "", "") or
        split("A+B++++", '+') <> [] ("A", "B", "", "", "", "") or
        split("A++B+++", '+') <> [] ("A", "", "B", "", "", "") or
        split("A+++B++", '+') <> [] ("A", "", "", "B", "", "") or
        split("A++++B+", '+') <> [] ("A", "", "", "", "B", "") or
        split("A+++++B", '+') <> [] ("A", "", "", "", "", "B") or
        split("+AB++++", '+') <> [] ("", "AB", "", "", "", "") or
        split("+A+B+++", '+') <> [] ("", "A", "B", "", "", "") or
        split("+A++B++", '+') <> [] ("", "A", "", "B", "", "") or
        split("+A+++B+", '+') <> [] ("", "A", "", "", "B", "") or
        split("+A++++B", '+') <> [] ("", "A", "", "", "", "B") or
        split("++AB+++", '+') <> [] ("", "", "AB", "", "", "") or
        split("++A+B++", '+') <> [] ("", "", "A", "B", "", "") or
        split("++A++B+", '+') <> [] ("", "", "A", "", "B", "") or
        split("++A+++B", '+') <> [] ("", "", "A", "", "", "B") or
        split("+++AB++", '+') <> [] ("", "", "", "AB", "", "") or
        split("+++A+B+", '+') <> [] ("", "", "", "A", "B", "") or
        split("+++A++B", '+') <> [] ("", "", "", "A", "", "B") or
        split("++++AB+", '+') <> [] ("", "", "", "", "AB", "") or
        split("++++A+B", '+') <> [] ("", "", "", "", "A", "B") or
        split("+++++AB", '+') <> [] ("", "", "", "", "", "AB") or
        split("ABC++++", '+') <> [] ("ABC", "", "", "", "") or
        split("AB+C+++", '+') <> [] ("AB", "C", "", "", "") or
        split("AB++C++", '+') <> [] ("AB", "", "C", "", "") or
        split("AB+++C+", '+') <> [] ("AB", "", "", "C", "") or
        split("AB++++C", '+') <> [] ("AB", "", "", "", "C") or
        split("A+BC+++", '+') <> [] ("A", "BC", "", "", "") or
        split("A+B+C++", '+') <> [] ("A", "B", "C", "", "") or
        split("A+B++C+", '+') <> [] ("A", "B", "", "C", "") or
        split("A+B+++C", '+') <> [] ("A", "B", "", "", "C") or
        split("A++BC++", '+') <> [] ("A", "", "BC", "", "") or
        split("A++B+C+", '+') <> [] ("A", "", "B", "C", "") or
        split("A++B++C", '+') <> [] ("A", "", "B", "", "C") or
        split("A+++BC+", '+') <> [] ("A", "", "", "BC", "") or
        split("A+++B+C", '+') <> [] ("A", "", "", "B", "C") or
        split("A++++BC", '+') <> [] ("A", "", "", "", "BC") or
        split("+ABC+++", '+') <> [] ("", "ABC", "", "", "") or
        split("+AB+C++", '+') <> [] ("", "AB", "C", "", "") or
        split("+AB++C+", '+') <> [] ("", "AB", "", "C", "") or
        split("+AB+++C", '+') <> [] ("", "AB", "", "", "C") or
        split("+A+BC++", '+') <> [] ("", "A", "BC", "", "") or
        split("+A+B+C+", '+') <> [] ("", "A", "B", "C", "") or
        split("+A+B++C", '+') <> [] ("", "A", "B", "", "C") or
        split("+A++BC+", '+') <> [] ("", "A", "", "BC", "") or
        split("+A++B+C", '+') <> [] ("", "A", "", "B", "C") or
        split("+A+++BC", '+') <> [] ("", "A", "", "", "BC") or
        split("++ABC++", '+') <> [] ("", "", "ABC", "", "") or
        split("++AB+C+", '+') <> [] ("", "", "AB", "C", "") or
        split("++AB++C", '+') <> [] ("", "", "AB", "", "C") or
        split("++A+BC+", '+') <> [] ("", "", "A", "BC", "") or
        split("++A+B+C", '+') <> [] ("", "", "A", "B", "C") or
        split("++A++BC", '+') <> [] ("", "", "A", "", "BC") or
        split("+++ABC+", '+') <> [] ("", "", "", "ABC", "") or
        split("+++AB+C", '+') <> [] ("", "", "", "AB", "C") or
        split("+++A+BC", '+') <> [] ("", "", "", "A", "BC") or
        split("++++ABC", '+') <> [] ("", "", "", "", "ABC") or
        split("ABCD+++", '+') <> [] ("ABCD", "", "", "") or
        split("ABC+D++", '+') <> [] ("ABC", "D", "", "") or
        split("ABC++D+", '+') <> [] ("ABC", "", "D", "") or
        split("ABC+++D", '+') <> [] ("ABC", "", "", "D") or
        split("AB+CD++", '+') <> [] ("AB", "CD", "", "") or
        split("AB+C+D+", '+') <> [] ("AB", "C", "D", "") or
        split("AB+C++D", '+') <> [] ("AB", "C", "", "D") or
        split("AB++CD+", '+') <> [] ("AB", "", "CD", "") or
        split("AB++C+D", '+') <> [] ("AB", "", "C", "D") or
        split("AB+++CD", '+') <> [] ("AB", "", "", "CD") or
        split("A+BCD++", '+') <> [] ("A", "BCD", "", "") or
        split("A+BC+D+", '+') <> [] ("A", "BC", "D", "") or
        split("A+BC++D", '+') <> [] ("A", "BC", "", "D") or
        split("A+B+CD+", '+') <> [] ("A", "B", "CD", "") or
        split("A+B+C+D", '+') <> [] ("A", "B", "C", "D") or
        split("A+B++CD", '+') <> [] ("A", "B", "", "CD") or
        split("A++BCD+", '+') <> [] ("A", "", "BCD", "") or
        split("A++BC+D", '+') <> [] ("A", "", "BC", "D") or
        split("A++B+CD", '+') <> [] ("A", "", "B", "CD") or
        split("A+++BCD", '+') <> [] ("A", "", "", "BCD") or
        split("+ABCD++", '+') <> [] ("", "ABCD", "", "") or
        split("+ABC+D+", '+') <> [] ("", "ABC", "D", "") or
        split("+ABC++D", '+') <> [] ("", "ABC", "", "D") or
        split("+AB+CD+", '+') <> [] ("", "AB", "CD", "") or
        split("+AB+C+D", '+') <> [] ("", "AB", "C", "D") or
        split("+AB++CD", '+') <> [] ("", "AB", "", "CD") or
        split("+A+BCD+", '+') <> [] ("", "A", "BCD", "") or
        split("+A+BC+D", '+') <> [] ("", "A", "BC", "D") or
        split("+A+B+CD", '+') <> [] ("", "A", "B", "CD") or
        split("+A++BCD", '+') <> [] ("", "A", "", "BCD") or
        split("++ABCD+", '+') <> [] ("", "", "ABCD", "") or
        split("++ABC+D", '+') <> [] ("", "", "ABC", "D") or
        split("++AB+CD", '+') <> [] ("", "", "AB", "CD") or
        split("++A+BCD", '+') <> [] ("", "", "A", "BCD") or
        split("+++ABCD", '+') <> [] ("", "", "", "ABCD") or
        split("ABCDE++", '+') <> [] ("ABCDE", "", "") or
        split("ABCD+E+", '+') <> [] ("ABCD", "E", "") or
        split("ABCD++E", '+') <> [] ("ABCD", "", "E") or
        split("ABC+DE+", '+') <> [] ("ABC", "DE", "") or
        split("ABC+D+E", '+') <> [] ("ABC", "D", "E") or
        split("ABC++DE", '+') <> [] ("ABC", "", "DE") or
        split("AB+CDE+", '+') <> [] ("AB", "CDE", "") or
        split("AB+CD+E", '+') <> [] ("AB", "CD", "E") or
        split("AB+C+DE", '+') <> [] ("AB", "C", "DE") or
        split("AB++CDE", '+') <> [] ("AB", "", "CDE") or
        split("A+BCDE+", '+') <> [] ("A", "BCDE", "") or
        split("A+BCD+E", '+') <> [] ("A", "BCD", "E") or
        split("A+BC+DE", '+') <> [] ("A", "BC", "DE") or
        split("A+B+CDE", '+') <> [] ("A", "B", "CDE") or
        split("A++BCDE", '+') <> [] ("A", "", "BCDE") or
        split("+ABCDE+", '+') <> [] ("", "ABCDE", "") or
        split("+ABCD+E", '+') <> [] ("", "ABCD", "E") or
        split("+ABC+DE", '+') <> [] ("", "ABC", "DE") or
        split("+AB+CDE", '+') <> [] ("", "AB", "CDE") or
        split("+A+BCDE", '+') <> [] ("", "A", "BCDE") or
        split("++ABCDE", '+') <> [] ("", "", "ABCDE") or
        split("ABCDEF+", '+') <> [] ("ABCDEF", "") or
        split("ABCDE+F", '+') <> [] ("ABCDE", "F") or
        split("ABCD+EF", '+') <> [] ("ABCD", "EF") or
        split("ABC+DEF", '+') <> [] ("ABC", "DEF") or
        split("AB+CDEF", '+') <> [] ("AB", "CDEF") or
        split("A+BCDEF", '+') <> [] ("A", "BCDEF") or
        split("+ABCDEF", '+') <> [] ("", "ABCDEF") or
        split("ABCDEFG", '+') <> [] ("ABCDEFG") then
      writeln(" ***** split(string, char) does not work correct.");
      okay := FALSE;
    end if;
    if  split("", "") <> [] ("") or
        split("", "+") <> [] ("") or
        split("A", "") <> [] ("A") or
        split("+", "+") <> [] ("", "") or
        split("A", "+") <> [] ("A") or
        split("AB", "") <> [] ("AB") or
        split("++", "+") <> [] ("", "", "") or
        split("+A", "+") <> [] ("", "A") or
        split("A+", "+") <> [] ("A", "") or
        split("AB", "+") <> [] ("AB") or
        split("ABC", "") <> [] ("ABC") or
        split("+++", "+") <> [] ("", "", "", "") or
        split("A++", "+") <> [] ("A", "", "") or
        split("+A+", "+") <> [] ("", "A", "") or
        split("++A", "+") <> [] ("", "", "A") or
        split("AB+", "+") <> [] ("AB", "") or
        split("A+B", "+") <> [] ("A", "B") or
        split("+AB", "+") <> [] ("", "AB") or
        split("ABC", "+") <> [] ("ABC") or
        split("ABCD", "") <> [] ("ABCD") or
        split("++++", "+") <> [] ("", "", "", "", "") or
        split("A+++", "+") <> [] ("A", "", "", "") or
        split("+A++", "+") <> [] ("", "A", "", "") or
        split("++A+", "+") <> [] ("", "", "A", "") or
        split("+++A", "+") <> [] ("", "", "", "A") or
        split("AB++", "+") <> [] ("AB", "", "") or
        split("A+B+", "+") <> [] ("A", "B", "") or
        split("A++B", "+") <> [] ("A", "", "B") or
        split("+AB+", "+") <> [] ("", "AB", "") or
        split("+A+B", "+") <> [] ("", "A", "B") or
        split("++AB", "+") <> [] ("", "", "AB") or
        split("ABC+", "+") <> [] ("ABC", "") or
        split("AB+C", "+") <> [] ("AB", "C") or
        split("A+BC", "+") <> [] ("A", "BC") or
        split("+ABC", "+") <> [] ("", "ABC") or
        split("ABCD", "+") <> [] ("ABCD") or
        split("ABCDE", "") <> [] ("ABCDE") or
        split("+++++", "+") <> [] ("", "", "", "", "", "") or
        split("A++++", "+") <> [] ("A", "", "", "", "") or
        split("+A+++", "+") <> [] ("", "A", "", "", "") or
        split("++A++", "+") <> [] ("", "", "A", "", "") or
        split("+++A+", "+") <> [] ("", "", "", "A", "") or
        split("++++A", "+") <> [] ("", "", "", "", "A") or
        split("AB+++", "+") <> [] ("AB", "", "", "") or
        split("A+B++", "+") <> [] ("A", "B", "", "") or
        split("A++B+", "+") <> [] ("A", "", "B", "") or
        split("A+++B", "+") <> [] ("A", "", "", "B") or
        split("+AB++", "+") <> [] ("", "AB", "", "") or
        split("+A+B+", "+") <> [] ("", "A", "B", "") or
        split("+A++B", "+") <> [] ("", "A", "", "B") or
        split("++AB+", "+") <> [] ("", "", "AB", "") or
        split("++A+B", "+") <> [] ("", "", "A", "B") or
        split("+++AB", "+") <> [] ("", "", "", "AB") or
        split("ABC++", "+") <> [] ("ABC", "", "") or
        split("AB+C+", "+") <> [] ("AB", "C", "") or
        split("AB++C", "+") <> [] ("AB", "", "C") or
        split("A+BC+", "+") <> [] ("A", "BC", "") or
        split("A+B+C", "+") <> [] ("A", "B", "C") or
        split("A++BC", "+") <> [] ("A", "", "BC") or
        split("+ABC+", "+") <> [] ("", "ABC", "") or
        split("+AB+C", "+") <> [] ("", "AB", "C") or
        split("+A+BC", "+") <> [] ("", "A", "BC") or
        split("++ABC", "+") <> [] ("", "", "ABC") or
        split("ABCD+", "+") <> [] ("ABCD", "") or
        split("ABC+D", "+") <> [] ("ABC", "D") or
        split("AB+CD", "+") <> [] ("AB", "CD") or
        split("A+BCD", "+") <> [] ("A", "BCD") or
        split("+ABCD", "+") <> [] ("", "ABCD") or
        split("ABCDE", "+") <> [] ("ABCDE") or
        split("ABCDEF", "") <> [] ("ABCDEF") or
        split("++++++", "+") <> [] ("", "", "", "", "", "", "") or
        split("A+++++", "+") <> [] ("A", "", "", "", "", "") or
        split("+A++++", "+") <> [] ("", "A", "", "", "", "") or
        split("++A+++", "+") <> [] ("", "", "A", "", "", "") or
        split("+++A++", "+") <> [] ("", "", "", "A", "", "") or
        split("++++A+", "+") <> [] ("", "", "", "", "A", "") or
        split("+++++A", "+") <> [] ("", "", "", "", "", "A") or
        split("AB++++", "+") <> [] ("AB", "", "", "", "") or
        split("A+B+++", "+") <> [] ("A", "B", "", "", "") or
        split("A++B++", "+") <> [] ("A", "", "B", "", "") or
        split("A+++B+", "+") <> [] ("A", "", "", "B", "") or
        split("A++++B", "+") <> [] ("A", "", "", "", "B") or
        split("+AB+++", "+") <> [] ("", "AB", "", "", "") or
        split("+A+B++", "+") <> [] ("", "A", "B", "", "") or
        split("+A++B+", "+") <> [] ("", "A", "", "B", "") or
        split("+A+++B", "+") <> [] ("", "A", "", "", "B") or
        split("++AB++", "+") <> [] ("", "", "AB", "", "") or
        split("++A+B+", "+") <> [] ("", "", "A", "B", "") or
        split("++A++B", "+") <> [] ("", "", "A", "", "B") or
        split("+++AB+", "+") <> [] ("", "", "", "AB", "") or
        split("+++A+B", "+") <> [] ("", "", "", "A", "B") or
        split("++++AB", "+") <> [] ("", "", "", "", "AB") or
        split("ABC+++", "+") <> [] ("ABC", "", "", "") or
        split("AB+C++", "+") <> [] ("AB", "C", "", "") or
        split("AB++C+", "+") <> [] ("AB", "", "C", "") or
        split("AB+++C", "+") <> [] ("AB", "", "", "C") or
        split("A+BC++", "+") <> [] ("A", "BC", "", "") or
        split("A+B+C+", "+") <> [] ("A", "B", "C", "") or
        split("A+B++C", "+") <> [] ("A", "B", "", "C") or
        split("A++BC+", "+") <> [] ("A", "", "BC", "") or
        split("A++B+C", "+") <> [] ("A", "", "B", "C") or
        split("A+++BC", "+") <> [] ("A", "", "", "BC") or
        split("+ABC++", "+") <> [] ("", "ABC", "", "") or
        split("+AB+C+", "+") <> [] ("", "AB", "C", "") or
        split("+AB++C", "+") <> [] ("", "AB", "", "C") or
        split("+A+BC+", "+") <> [] ("", "A", "BC", "") or
        split("+A+B+C", "+") <> [] ("", "A", "B", "C") or
        split("+A++BC", "+") <> [] ("", "A", "", "BC") or
        split("++ABC+", "+") <> [] ("", "", "ABC", "") or
        split("++AB+C", "+") <> [] ("", "", "AB", "C") or
        split("++A+BC", "+") <> [] ("", "", "A", "BC") or
        split("+++ABC", "+") <> [] ("", "", "", "ABC") or
        split("ABCD++", "+") <> [] ("ABCD", "", "") or
        split("ABC+D+", "+") <> [] ("ABC", "D", "") or
        split("ABC++D", "+") <> [] ("ABC", "", "D") or
        split("AB+CD+", "+") <> [] ("AB", "CD", "") or
        split("AB+C+D", "+") <> [] ("AB", "C", "D") or
        split("AB++CD", "+") <> [] ("AB", "", "CD") or
        split("A+BCD+", "+") <> [] ("A", "BCD", "") or
        split("A+BC+D", "+") <> [] ("A", "BC", "D") or
        split("A+B+CD", "+") <> [] ("A", "B", "CD") or
        split("A++BCD", "+") <> [] ("A", "", "BCD") or
        split("+ABCD+", "+") <> [] ("", "ABCD", "") or
        split("+ABC+D", "+") <> [] ("", "ABC", "D") or
        split("+AB+CD", "+") <> [] ("", "AB", "CD") or
        split("+A+BCD", "+") <> [] ("", "A", "BCD") or
        split("++ABCD", "+") <> [] ("", "", "ABCD") or
        split("ABCDE+", "+") <> [] ("ABCDE", "") or
        split("ABCD+E", "+") <> [] ("ABCD", "E") or
        split("ABC+DE", "+") <> [] ("ABC", "DE") or
        split("AB+CDE", "+") <> [] ("AB", "CDE") or
        split("A+BCDE", "+") <> [] ("A", "BCDE") or
        split("+ABCDE", "+") <> [] ("", "ABCDE") or
        split("ABCDEF", "+") <> [] ("ABCDEF") or
        split("ABCDEFG", "") <> [] ("ABCDEFG") or
        split("+++++++", "+") <> [] ("", "", "", "", "", "", "", "") or
        split("A++++++", "+") <> [] ("A", "", "", "", "", "", "") or
        split("+A+++++", "+") <> [] ("", "A", "", "", "", "", "") or
        split("++A++++", "+") <> [] ("", "", "A", "", "", "", "") or
        split("+++A+++", "+") <> [] ("", "", "", "A", "", "", "") or
        split("++++A++", "+") <> [] ("", "", "", "", "A", "", "") or
        split("+++++A+", "+") <> [] ("", "", "", "", "", "A", "") or
        split("++++++A", "+") <> [] ("", "", "", "", "", "", "A") or
        split("AB+++++", "+") <> [] ("AB", "", "", "", "", "") or
        split("A+B++++", "+") <> [] ("A", "B", "", "", "", "") or
        split("A++B+++", "+") <> [] ("A", "", "B", "", "", "") or
        split("A+++B++", "+") <> [] ("A", "", "", "B", "", "") or
        split("A++++B+", "+") <> [] ("A", "", "", "", "B", "") or
        split("A+++++B", "+") <> [] ("A", "", "", "", "", "B") or
        split("+AB++++", "+") <> [] ("", "AB", "", "", "", "") or
        split("+A+B+++", "+") <> [] ("", "A", "B", "", "", "") or
        split("+A++B++", "+") <> [] ("", "A", "", "B", "", "") or
        split("+A+++B+", "+") <> [] ("", "A", "", "", "B", "") or
        split("+A++++B", "+") <> [] ("", "A", "", "", "", "B") or
        split("++AB+++", "+") <> [] ("", "", "AB", "", "", "") or
        split("++A+B++", "+") <> [] ("", "", "A", "B", "", "") or
        split("++A++B+", "+") <> [] ("", "", "A", "", "B", "") or
        split("++A+++B", "+") <> [] ("", "", "A", "", "", "B") or
        split("+++AB++", "+") <> [] ("", "", "", "AB", "", "") or
        split("+++A+B+", "+") <> [] ("", "", "", "A", "B", "") or
        split("+++A++B", "+") <> [] ("", "", "", "A", "", "B") or
        split("++++AB+", "+") <> [] ("", "", "", "", "AB", "") or
        split("++++A+B", "+") <> [] ("", "", "", "", "A", "B") or
        split("+++++AB", "+") <> [] ("", "", "", "", "", "AB") or
        split("ABC++++", "+") <> [] ("ABC", "", "", "", "") or
        split("AB+C+++", "+") <> [] ("AB", "C", "", "", "") or
        split("AB++C++", "+") <> [] ("AB", "", "C", "", "") or
        split("AB+++C+", "+") <> [] ("AB", "", "", "C", "") or
        split("AB++++C", "+") <> [] ("AB", "", "", "", "C") or
        split("A+BC+++", "+") <> [] ("A", "BC", "", "", "") or
        split("A+B+C++", "+") <> [] ("A", "B", "C", "", "") or
        split("A+B++C+", "+") <> [] ("A", "B", "", "C", "") or
        split("A+B+++C", "+") <> [] ("A", "B", "", "", "C") or
        split("A++BC++", "+") <> [] ("A", "", "BC", "", "") or
        split("A++B+C+", "+") <> [] ("A", "", "B", "C", "") or
        split("A++B++C", "+") <> [] ("A", "", "B", "", "C") or
        split("A+++BC+", "+") <> [] ("A", "", "", "BC", "") or
        split("A+++B+C", "+") <> [] ("A", "", "", "B", "C") or
        split("A++++BC", "+") <> [] ("A", "", "", "", "BC") or
        split("+ABC+++", "+") <> [] ("", "ABC", "", "", "") or
        split("+AB+C++", "+") <> [] ("", "AB", "C", "", "") or
        split("+AB++C+", "+") <> [] ("", "AB", "", "C", "") or
        split("+AB+++C", "+") <> [] ("", "AB", "", "", "C") or
        split("+A+BC++", "+") <> [] ("", "A", "BC", "", "") or
        split("+A+B+C+", "+") <> [] ("", "A", "B", "C", "") or
        split("+A+B++C", "+") <> [] ("", "A", "B", "", "C") or
        split("+A++BC+", "+") <> [] ("", "A", "", "BC", "") or
        split("+A++B+C", "+") <> [] ("", "A", "", "B", "C") or
        split("+A+++BC", "+") <> [] ("", "A", "", "", "BC") or
        split("++ABC++", "+") <> [] ("", "", "ABC", "", "") or
        split("++AB+C+", "+") <> [] ("", "", "AB", "C", "") or
        split("++AB++C", "+") <> [] ("", "", "AB", "", "C") or
        split("++A+BC+", "+") <> [] ("", "", "A", "BC", "") or
        split("++A+B+C", "+") <> [] ("", "", "A", "B", "C") or
        split("++A++BC", "+") <> [] ("", "", "A", "", "BC") or
        split("+++ABC+", "+") <> [] ("", "", "", "ABC", "") or
        split("+++AB+C", "+") <> [] ("", "", "", "AB", "C") or
        split("+++A+BC", "+") <> [] ("", "", "", "A", "BC") or
        split("++++ABC", "+") <> [] ("", "", "", "", "ABC") or
        split("ABCD+++", "+") <> [] ("ABCD", "", "", "") or
        split("ABC+D++", "+") <> [] ("ABC", "D", "", "") or
        split("ABC++D+", "+") <> [] ("ABC", "", "D", "") or
        split("ABC+++D", "+") <> [] ("ABC", "", "", "D") or
        split("AB+CD++", "+") <> [] ("AB", "CD", "", "") or
        split("AB+C+D+", "+") <> [] ("AB", "C", "D", "") or
        split("AB+C++D", "+") <> [] ("AB", "C", "", "D") or
        split("AB++CD+", "+") <> [] ("AB", "", "CD", "") or
        split("AB++C+D", "+") <> [] ("AB", "", "C", "D") or
        split("AB+++CD", "+") <> [] ("AB", "", "", "CD") or
        split("A+BCD++", "+") <> [] ("A", "BCD", "", "") or
        split("A+BC+D+", "+") <> [] ("A", "BC", "D", "") or
        split("A+BC++D", "+") <> [] ("A", "BC", "", "D") or
        split("A+B+CD+", "+") <> [] ("A", "B", "CD", "") or
        split("A+B+C+D", "+") <> [] ("A", "B", "C", "D") or
        split("A+B++CD", "+") <> [] ("A", "B", "", "CD") or
        split("A++BCD+", "+") <> [] ("A", "", "BCD", "") or
        split("A++BC+D", "+") <> [] ("A", "", "BC", "D") or
        split("A++B+CD", "+") <> [] ("A", "", "B", "CD") or
        split("A+++BCD", "+") <> [] ("A", "", "", "BCD") or
        split("+ABCD++", "+") <> [] ("", "ABCD", "", "") or
        split("+ABC+D+", "+") <> [] ("", "ABC", "D", "") or
        split("+ABC++D", "+") <> [] ("", "ABC", "", "D") or
        split("+AB+CD+", "+") <> [] ("", "AB", "CD", "") or
        split("+AB+C+D", "+") <> [] ("", "AB", "C", "D") or
        split("+AB++CD", "+") <> [] ("", "AB", "", "CD") or
        split("+A+BCD+", "+") <> [] ("", "A", "BCD", "") or
        split("+A+BC+D", "+") <> [] ("", "A", "BC", "D") or
        split("+A+B+CD", "+") <> [] ("", "A", "B", "CD") or
        split("+A++BCD", "+") <> [] ("", "A", "", "BCD") or
        split("++ABCD+", "+") <> [] ("", "", "ABCD", "") or
        split("++ABC+D", "+") <> [] ("", "", "ABC", "D") or
        split("++AB+CD", "+") <> [] ("", "", "AB", "CD") or
        split("++A+BCD", "+") <> [] ("", "", "A", "BCD") or
        split("+++ABCD", "+") <> [] ("", "", "", "ABCD") or
        split("ABCDE++", "+") <> [] ("ABCDE", "", "") or
        split("ABCD+E+", "+") <> [] ("ABCD", "E", "") or
        split("ABCD++E", "+") <> [] ("ABCD", "", "E") or
        split("ABC+DE+", "+") <> [] ("ABC", "DE", "") or
        split("ABC+D+E", "+") <> [] ("ABC", "D", "E") or
        split("ABC++DE", "+") <> [] ("ABC", "", "DE") or
        split("AB+CDE+", "+") <> [] ("AB", "CDE", "") or
        split("AB+CD+E", "+") <> [] ("AB", "CD", "E") or
        split("AB+C+DE", "+") <> [] ("AB", "C", "DE") or
        split("AB++CDE", "+") <> [] ("AB", "", "CDE") or
        split("A+BCDE+", "+") <> [] ("A", "BCDE", "") or
        split("A+BCD+E", "+") <> [] ("A", "BCD", "E") or
        split("A+BC+DE", "+") <> [] ("A", "BC", "DE") or
        split("A+B+CDE", "+") <> [] ("A", "B", "CDE") or
        split("A++BCDE", "+") <> [] ("A", "", "BCDE") or
        split("+ABCDE+", "+") <> [] ("", "ABCDE", "") or
        split("+ABCD+E", "+") <> [] ("", "ABCD", "E") or
        split("+ABC+DE", "+") <> [] ("", "ABC", "DE") or
        split("+AB+CDE", "+") <> [] ("", "AB", "CDE") or
        split("+A+BCDE", "+") <> [] ("", "A", "BCDE") or
        split("++ABCDE", "+") <> [] ("", "", "ABCDE") or
        split("ABCDEF+", "+") <> [] ("ABCDEF", "") or
        split("ABCDE+F", "+") <> [] ("ABCDE", "F") or
        split("ABCD+EF", "+") <> [] ("ABCD", "EF") or
        split("ABC+DEF", "+") <> [] ("ABC", "DEF") or
        split("AB+CDEF", "+") <> [] ("AB", "CDEF") or
        split("A+BCDEF", "+") <> [] ("A", "BCDEF") or
        split("+ABCDEF", "+") <> [] ("", "ABCDEF") or
        split("ABCDEFG", "+") <> [] ("ABCDEFG") then
      writeln(" ***** split(string, string) does not work correct.");
      okay := FALSE;
    end if;
    if okay then
      writeln("split(string) works correct.");
    end if;
  end func;


const proc: check_string_join is func
  local
    var boolean: okay is TRUE;
  begin
    if  join([] (""), '+')                             <> "" or
        join([] ("", ""), '+')                         <> "+" or
        join([] ("A"), '+')                            <> "A" or
        join([] ("", "", ""), '+')                     <> "++" or
        join([] ("", "A"), '+')                        <> "+A" or
        join([] ("A", ""), '+')                        <> "A+" or
        join([] ("AB"), '+')                           <> "AB" or
        join([] ("", "", "", ""), '+')                 <> "+++" or
        join([] ("A", "", ""), '+')                    <> "A++" or
        join([] ("", "A", ""), '+')                    <> "+A+" or
        join([] ("", "", "A"), '+')                    <> "++A" or
        join([] ("AB", ""), '+')                       <> "AB+" or
        join([] ("A", "B"), '+')                       <> "A+B" or
        join([] ("", "AB"), '+')                       <> "+AB" or
        join([] ("ABC"), '+')                          <> "ABC" or
        join([] ("", "", "", "", ""), '+')             <> "++++" or
        join([] ("A", "", "", ""), '+')                <> "A+++" or
        join([] ("", "A", "", ""), '+')                <> "+A++" or
        join([] ("", "", "A", ""), '+')                <> "++A+" or
        join([] ("", "", "", "A"), '+')                <> "+++A" or
        join([] ("AB", "", ""), '+')                   <> "AB++" or
        join([] ("A", "B", ""), '+')                   <> "A+B+" or
        join([] ("A", "", "B"), '+')                   <> "A++B" or
        join([] ("", "AB", ""), '+')                   <> "+AB+" or
        join([] ("", "A", "B"), '+')                   <> "+A+B" or
        join([] ("", "", "AB"), '+')                   <> "++AB" or
        join([] ("ABC", ""), '+')                      <> "ABC+" or
        join([] ("AB", "C"), '+')                      <> "AB+C" or
        join([] ("A", "BC"), '+')                      <> "A+BC" or
        join([] ("", "ABC"), '+')                      <> "+ABC" or
        join([] ("ABCD"), '+')                         <> "ABCD" or
        join([] ("", "", "", "", "", ""), '+')         <> "+++++" or
        join([] ("A", "", "", "", ""), '+')            <> "A++++" or
        join([] ("", "A", "", "", ""), '+')            <> "+A+++" or
        join([] ("", "", "A", "", ""), '+')            <> "++A++" or
        join([] ("", "", "", "A", ""), '+')            <> "+++A+" or
        join([] ("", "", "", "", "A"), '+')            <> "++++A" or
        join([] ("AB", "", "", ""), '+')               <> "AB+++" or
        join([] ("A", "B", "", ""), '+')               <> "A+B++" or
        join([] ("A", "", "B", ""), '+')               <> "A++B+" or
        join([] ("A", "", "", "B"), '+')               <> "A+++B" or
        join([] ("", "AB", "", ""), '+')               <> "+AB++" or
        join([] ("", "A", "B", ""), '+')               <> "+A+B+" or
        join([] ("", "A", "", "B"), '+')               <> "+A++B" or
        join([] ("", "", "AB", ""), '+')               <> "++AB+" or
        join([] ("", "", "A", "B"), '+')               <> "++A+B" or
        join([] ("", "", "", "AB"), '+')               <> "+++AB" or
        join([] ("ABC", "", ""), '+')                  <> "ABC++" or
        join([] ("AB", "C", ""), '+')                  <> "AB+C+" or
        join([] ("AB", "", "C"), '+')                  <> "AB++C" or
        join([] ("A", "BC", ""), '+')                  <> "A+BC+" or
        join([] ("A", "B", "C"), '+')                  <> "A+B+C" or
        join([] ("A", "", "BC"), '+')                  <> "A++BC" or
        join([] ("", "ABC", ""), '+')                  <> "+ABC+" or
        join([] ("", "AB", "C"), '+')                  <> "+AB+C" or
        join([] ("", "A", "BC"), '+')                  <> "+A+BC" or
        join([] ("", "", "ABC"), '+')                  <> "++ABC" or
        join([] ("ABCD", ""), '+')                     <> "ABCD+" or
        join([] ("ABC", "D"), '+')                     <> "ABC+D" or
        join([] ("AB", "CD"), '+')                     <> "AB+CD" or
        join([] ("A", "BCD"), '+')                     <> "A+BCD" or
        join([] ("", "ABCD"), '+')                     <> "+ABCD" or
        join([] ("ABCDE"), '+')                        <> "ABCDE" or
        join([] ("", "", "", "", "", "", ""), '+')     <> "++++++" or
        join([] ("A", "", "", "", "", ""), '+')        <> "A+++++" or
        join([] ("", "A", "", "", "", ""), '+')        <> "+A++++" or
        join([] ("", "", "A", "", "", ""), '+')        <> "++A+++" or
        join([] ("", "", "", "A", "", ""), '+')        <> "+++A++" or
        join([] ("", "", "", "", "A", ""), '+')        <> "++++A+" or
        join([] ("", "", "", "", "", "A"), '+')        <> "+++++A" or
        join([] ("AB", "", "", "", ""), '+')           <> "AB++++" or
        join([] ("A", "B", "", "", ""), '+')           <> "A+B+++" or
        join([] ("A", "", "B", "", ""), '+')           <> "A++B++" or
        join([] ("A", "", "", "B", ""), '+')           <> "A+++B+" or
        join([] ("A", "", "", "", "B"), '+')           <> "A++++B" or
        join([] ("", "AB", "", "", ""), '+')           <> "+AB+++" or
        join([] ("", "A", "B", "", ""), '+')           <> "+A+B++" or
        join([] ("", "A", "", "B", ""), '+')           <> "+A++B+" or
        join([] ("", "A", "", "", "B"), '+')           <> "+A+++B" or
        join([] ("", "", "AB", "", ""), '+')           <> "++AB++" or
        join([] ("", "", "A", "B", ""), '+')           <> "++A+B+" or
        join([] ("", "", "A", "", "B"), '+')           <> "++A++B" or
        join([] ("", "", "", "AB", ""), '+')           <> "+++AB+" or
        join([] ("", "", "", "A", "B"), '+')           <> "+++A+B" or
        join([] ("", "", "", "", "AB"), '+')           <> "++++AB" or
        join([] ("ABC", "", "", ""), '+')              <> "ABC+++" or
        join([] ("AB", "C", "", ""), '+')              <> "AB+C++" or
        join([] ("AB", "", "C", ""), '+')              <> "AB++C+" or
        join([] ("AB", "", "", "C"), '+')              <> "AB+++C" or
        join([] ("A", "BC", "", ""), '+')              <> "A+BC++" or
        join([] ("A", "B", "C", ""), '+')              <> "A+B+C+" or
        join([] ("A", "B", "", "C"), '+')              <> "A+B++C" or
        join([] ("A", "", "BC", ""), '+')              <> "A++BC+" or
        join([] ("A", "", "B", "C"), '+')              <> "A++B+C" or
        join([] ("A", "", "", "BC"), '+')              <> "A+++BC" or
        join([] ("", "ABC", "", ""), '+')              <> "+ABC++" or
        join([] ("", "AB", "C", ""), '+')              <> "+AB+C+" or
        join([] ("", "AB", "", "C"), '+')              <> "+AB++C" or
        join([] ("", "A", "BC", ""), '+')              <> "+A+BC+" or
        join([] ("", "A", "B", "C"), '+')              <> "+A+B+C" or
        join([] ("", "A", "", "BC"), '+')              <> "+A++BC" or
        join([] ("", "", "ABC", ""), '+')              <> "++ABC+" or
        join([] ("", "", "AB", "C"), '+')              <> "++AB+C" or
        join([] ("", "", "A", "BC"), '+')              <> "++A+BC" or
        join([] ("", "", "", "ABC"), '+')              <> "+++ABC" or
        join([] ("ABCD", "", ""), '+')                 <> "ABCD++" or
        join([] ("ABC", "D", ""), '+')                 <> "ABC+D+" or
        join([] ("ABC", "", "D"), '+')                 <> "ABC++D" or
        join([] ("AB", "CD", ""), '+')                 <> "AB+CD+" or
        join([] ("AB", "C", "D"), '+')                 <> "AB+C+D" or
        join([] ("AB", "", "CD"), '+')                 <> "AB++CD" or
        join([] ("A", "BCD", ""), '+')                 <> "A+BCD+" or
        join([] ("A", "BC", "D"), '+')                 <> "A+BC+D" or
        join([] ("A", "B", "CD"), '+')                 <> "A+B+CD" or
        join([] ("A", "", "BCD"), '+')                 <> "A++BCD" or
        join([] ("", "ABCD", ""), '+')                 <> "+ABCD+" or
        join([] ("", "ABC", "D"), '+')                 <> "+ABC+D" or
        join([] ("", "AB", "CD"), '+')                 <> "+AB+CD" or
        join([] ("", "A", "BCD"), '+')                 <> "+A+BCD" or
        join([] ("", "", "ABCD"), '+')                 <> "++ABCD" or
        join([] ("ABCDE", ""), '+')                    <> "ABCDE+" or
        join([] ("ABCD", "E"), '+')                    <> "ABCD+E" or
        join([] ("ABC", "DE"), '+')                    <> "ABC+DE" or
        join([] ("AB", "CDE"), '+')                    <> "AB+CDE" or
        join([] ("A", "BCDE"), '+')                    <> "A+BCDE" or
        join([] ("", "ABCDE"), '+')                    <> "+ABCDE" or
        join([] ("ABCDEF"), '+')                       <> "ABCDEF" or
        join([] ("", "", "", "", "", "", "", ""), '+') <> "+++++++" or
        join([] ("A", "", "", "", "", "", ""), '+')    <> "A++++++" or
        join([] ("", "A", "", "", "", "", ""), '+')    <> "+A+++++" or
        join([] ("", "", "A", "", "", "", ""), '+')    <> "++A++++" or
        join([] ("", "", "", "A", "", "", ""), '+')    <> "+++A+++" or
        join([] ("", "", "", "", "A", "", ""), '+')    <> "++++A++" or
        join([] ("", "", "", "", "", "A", ""), '+')    <> "+++++A+" or
        join([] ("", "", "", "", "", "", "A"), '+')    <> "++++++A" or
        join([] ("AB", "", "", "", "", ""), '+')       <> "AB+++++" or
        join([] ("A", "B", "", "", "", ""), '+')       <> "A+B++++" or
        join([] ("A", "", "B", "", "", ""), '+')       <> "A++B+++" or
        join([] ("A", "", "", "B", "", ""), '+')       <> "A+++B++" or
        join([] ("A", "", "", "", "B", ""), '+')       <> "A++++B+" or
        join([] ("A", "", "", "", "", "B"), '+')       <> "A+++++B" or
        join([] ("", "AB", "", "", "", ""), '+')       <> "+AB++++" or
        join([] ("", "A", "B", "", "", ""), '+')       <> "+A+B+++" or
        join([] ("", "A", "", "B", "", ""), '+')       <> "+A++B++" or
        join([] ("", "A", "", "", "B", ""), '+')       <> "+A+++B+" or
        join([] ("", "A", "", "", "", "B"), '+')       <> "+A++++B" or
        join([] ("", "", "AB", "", "", ""), '+')       <> "++AB+++" or
        join([] ("", "", "A", "B", "", ""), '+')       <> "++A+B++" or
        join([] ("", "", "A", "", "B", ""), '+')       <> "++A++B+" or
        join([] ("", "", "A", "", "", "B"), '+')       <> "++A+++B" or
        join([] ("", "", "", "AB", "", ""), '+')       <> "+++AB++" or
        join([] ("", "", "", "A", "B", ""), '+')       <> "+++A+B+" or
        join([] ("", "", "", "A", "", "B"), '+')       <> "+++A++B" or
        join([] ("", "", "", "", "AB", ""), '+')       <> "++++AB+" or
        join([] ("", "", "", "", "A", "B"), '+')       <> "++++A+B" or
        join([] ("", "", "", "", "", "AB"), '+')       <> "+++++AB" or
        join([] ("ABC", "", "", "", ""), '+')          <> "ABC++++" or
        join([] ("AB", "C", "", "", ""), '+')          <> "AB+C+++" or
        join([] ("AB", "", "C", "", ""), '+')          <> "AB++C++" or
        join([] ("AB", "", "", "C", ""), '+')          <> "AB+++C+" or
        join([] ("AB", "", "", "", "C"), '+')          <> "AB++++C" or
        join([] ("A", "BC", "", "", ""), '+')          <> "A+BC+++" or
        join([] ("A", "B", "C", "", ""), '+')          <> "A+B+C++" or
        join([] ("A", "B", "", "C", ""), '+')          <> "A+B++C+" or
        join([] ("A", "B", "", "", "C"), '+')          <> "A+B+++C" or
        join([] ("A", "", "BC", "", ""), '+')          <> "A++BC++" or
        join([] ("A", "", "B", "C", ""), '+')          <> "A++B+C+" or
        join([] ("A", "", "B", "", "C"), '+')          <> "A++B++C" or
        join([] ("A", "", "", "BC", ""), '+')          <> "A+++BC+" or
        join([] ("A", "", "", "B", "C"), '+')          <> "A+++B+C" or
        join([] ("A", "", "", "", "BC"), '+')          <> "A++++BC" or
        join([] ("", "ABC", "", "", ""), '+')          <> "+ABC+++" or
        join([] ("", "AB", "C", "", ""), '+')          <> "+AB+C++" or
        join([] ("", "AB", "", "C", ""), '+')          <> "+AB++C+" or
        join([] ("", "AB", "", "", "C"), '+')          <> "+AB+++C" or
        join([] ("", "A", "BC", "", ""), '+')          <> "+A+BC++" or
        join([] ("", "A", "B", "C", ""), '+')          <> "+A+B+C+" or
        join([] ("", "A", "B", "", "C"), '+')          <> "+A+B++C" or
        join([] ("", "A", "", "BC", ""), '+')          <> "+A++BC+" or
        join([] ("", "A", "", "B", "C"), '+')          <> "+A++B+C" or
        join([] ("", "A", "", "", "BC"), '+')          <> "+A+++BC" or
        join([] ("", "", "ABC", "", ""), '+')          <> "++ABC++" or
        join([] ("", "", "AB", "C", ""), '+')          <> "++AB+C+" or
        join([] ("", "", "AB", "", "C"), '+')          <> "++AB++C" or
        join([] ("", "", "A", "BC", ""), '+')          <> "++A+BC+" or
        join([] ("", "", "A", "B", "C"), '+')          <> "++A+B+C" or
        join([] ("", "", "A", "", "BC"), '+')          <> "++A++BC" or
        join([] ("", "", "", "ABC", ""), '+')          <> "+++ABC+" or
        join([] ("", "", "", "AB", "C"), '+')          <> "+++AB+C" or
        join([] ("", "", "", "A", "BC"), '+')          <> "+++A+BC" or
        join([] ("", "", "", "", "ABC"), '+')          <> "++++ABC" or
        join([] ("ABCD", "", "", ""), '+')             <> "ABCD+++" or
        join([] ("ABC", "D", "", ""), '+')             <> "ABC+D++" or
        join([] ("ABC", "", "D", ""), '+')             <> "ABC++D+" or
        join([] ("ABC", "", "", "D"), '+')             <> "ABC+++D" or
        join([] ("AB", "CD", "", ""), '+')             <> "AB+CD++" or
        join([] ("AB", "C", "D", ""), '+')             <> "AB+C+D+" or
        join([] ("AB", "C", "", "D"), '+')             <> "AB+C++D" or
        join([] ("AB", "", "CD", ""), '+')             <> "AB++CD+" or
        join([] ("AB", "", "C", "D"), '+')             <> "AB++C+D" or
        join([] ("AB", "", "", "CD"), '+')             <> "AB+++CD" or
        join([] ("A", "BCD", "", ""), '+')             <> "A+BCD++" or
        join([] ("A", "BC", "D", ""), '+')             <> "A+BC+D+" or
        join([] ("A", "BC", "", "D"), '+')             <> "A+BC++D" or
        join([] ("A", "B", "CD", ""), '+')             <> "A+B+CD+" or
        join([] ("A", "B", "C", "D"), '+')             <> "A+B+C+D" or
        join([] ("A", "B", "", "CD"), '+')             <> "A+B++CD" or
        join([] ("A", "", "BCD", ""), '+')             <> "A++BCD+" or
        join([] ("A", "", "BC", "D"), '+')             <> "A++BC+D" or
        join([] ("A", "", "B", "CD"), '+')             <> "A++B+CD" or
        join([] ("A", "", "", "BCD"), '+')             <> "A+++BCD" or
        join([] ("", "ABCD", "", ""), '+')             <> "+ABCD++" or
        join([] ("", "ABC", "D", ""), '+')             <> "+ABC+D+" or
        join([] ("", "ABC", "", "D"), '+')             <> "+ABC++D" or
        join([] ("", "AB", "CD", ""), '+')             <> "+AB+CD+" or
        join([] ("", "AB", "C", "D"), '+')             <> "+AB+C+D" or
        join([] ("", "AB", "", "CD"), '+')             <> "+AB++CD" or
        join([] ("", "A", "BCD", ""), '+')             <> "+A+BCD+" or
        join([] ("", "A", "BC", "D"), '+')             <> "+A+BC+D" or
        join([] ("", "A", "B", "CD"), '+')             <> "+A+B+CD" or
        join([] ("", "A", "", "BCD"), '+')             <> "+A++BCD" or
        join([] ("", "", "ABCD", ""), '+')             <> "++ABCD+" or
        join([] ("", "", "ABC", "D"), '+')             <> "++ABC+D" or
        join([] ("", "", "AB", "CD"), '+')             <> "++AB+CD" or
        join([] ("", "", "A", "BCD"), '+')             <> "++A+BCD" or
        join([] ("", "", "", "ABCD"), '+')             <> "+++ABCD" or
        join([] ("ABCDE", "", ""), '+')                <> "ABCDE++" or
        join([] ("ABCD", "E", ""), '+')                <> "ABCD+E+" or
        join([] ("ABCD", "", "E"), '+')                <> "ABCD++E" or
        join([] ("ABC", "DE", ""), '+')                <> "ABC+DE+" or
        join([] ("ABC", "D", "E"), '+')                <> "ABC+D+E" or
        join([] ("ABC", "", "DE"), '+')                <> "ABC++DE" or
        join([] ("AB", "CDE", ""), '+')                <> "AB+CDE+" or
        join([] ("AB", "CD", "E"), '+')                <> "AB+CD+E" or
        join([] ("AB", "C", "DE"), '+')                <> "AB+C+DE" or
        join([] ("AB", "", "CDE"), '+')                <> "AB++CDE" or
        join([] ("A", "BCDE", ""), '+')                <> "A+BCDE+" or
        join([] ("A", "BCD", "E"), '+')                <> "A+BCD+E" or
        join([] ("A", "BC", "DE"), '+')                <> "A+BC+DE" or
        join([] ("A", "B", "CDE"), '+')                <> "A+B+CDE" or
        join([] ("A", "", "BCDE"), '+')                <> "A++BCDE" or
        join([] ("", "ABCDE", ""), '+')                <> "+ABCDE+" or
        join([] ("", "ABCD", "E"), '+')                <> "+ABCD+E" or
        join([] ("", "ABC", "DE"), '+')                <> "+ABC+DE" or
        join([] ("", "AB", "CDE"), '+')                <> "+AB+CDE" or
        join([] ("", "A", "BCDE"), '+')                <> "+A+BCDE" or
        join([] ("", "", "ABCDE"), '+')                <> "++ABCDE" or
        join([] ("ABCDEF", ""), '+')                   <> "ABCDEF+" or
        join([] ("ABCDE", "F"), '+')                   <> "ABCDE+F" or
        join([] ("ABCD", "EF"), '+')                   <> "ABCD+EF" or
        join([] ("ABC", "DEF"), '+')                   <> "ABC+DEF" or
        join([] ("AB", "CDEF"), '+')                   <> "AB+CDEF" or
        join([] ("A", "BCDEF"), '+')                   <> "A+BCDEF" or
        join([] ("", "ABCDEF"), '+')                   <> "+ABCDEF" or
        join([] ("ABCDEFG"), '+')                      <> "ABCDEFG" then
      writeln(" ***** join(string) does not work correct.");
      okay := FALSE;
    end if;
    if okay then
      writeln("join(string) works correct.");
    end if;
  end func;


(**
 *  Test the case where source and destination of an assignment
 *  are identical.
 *)
const proc: do_assign (inout string: dest, ref string: source) is func
  begin
    dest := source;
  end func;


const proc: check_string_assign is func
  local
    var boolean: okay is TRUE;
    var boolean: ok is TRUE;
    var string: stri is "";
    var string: stri2 is "";
  begin
    stri := "asdfghjkl";      ok := ok and stri = "asdfghjkl";
    stri := stri;             ok := ok and stri = "asdfghjkl";
    do_assign(stri, stri);    ok := ok and stri = "asdfghjkl";
    stri := stri[2 ..];       ok := ok and stri = "sdfghjkl";
    stri2 := stri[.. 7];      ok := ok and stri2 = "sdfghjk";
    stri := stri[.. 7];       ok := ok and stri = "sdfghjk";
    stri := stri[2 .. 6];     ok := ok and stri = "dfghj";
    stri := stri[2 len 3];    ok := ok and stri = "fgh";
    stri := "asdfghjkl";      ok := ok and stri = "asdfghjkl";
    stri := stri[2 ..][.. 7]; ok := ok and stri = "sdfghjk";
    stri := stri & "SDFGHJK"; ok := ok and stri = "sdfghjkSDFGHJK";
    stri := "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ";
    stri := lower(stri);      ok := ok and stri = "aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz";
    stri := "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ";
    stri := upper(stri);      ok := ok and stri = "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ";
    if not ok then
      writeln(" ***** String assignment does not work correct.");
      okay := FALSE;
    end if;
    if okay then
      writeln("String assignment works correct.");
    end if;
  end func;


(**
 *  Test the case where source and destination of an append
 *  are identical.
 *)
const proc: do_append (inout string: dest, ref string: source) is func
  begin
    dest &:= source;
  end func;


const func boolean: check_string_append_self_ref1 is func
  result
    var boolean: ok is TRUE;
  local
    var string: stri1 is "1234567890";
    var string: stri2 is "1234567890";
    var string: stri3 is "1234567890";
    var string: stri4 is "1234567890";
    var string: stri5 is "1234567890";
    var string: stri6 is "1234567890";
    var string: stri7 is "1234567890";
    var string: stri8 is "1234567890";
    var string: stri9 is "1234567890";
  begin
    stri1 &:= stri1;             ok := ok and stri1 = "12345678901234567890";
    stri2 &:= stri2[2 ..];       ok := ok and stri2 = "1234567890234567890";
    stri3 &:= stri3[.. 9];       ok := ok and stri3 = "1234567890123456789";
    stri4 &:= stri4[2 .. 9];     ok := ok and stri4 = "123456789023456789";
    stri5 &:= stri5[2 len 8];    ok := ok and stri5 = "123456789023456789";
    stri6 &:= stri6[2 ..][.. 8]; ok := ok and stri6 = "123456789023456789";
    stri7 &:= stri7[3];          ok := ok and stri7 = "12345678903";
    stri8 &:= str(stri8[3]);     ok := ok and stri8 = "12345678903";
    do_append(stri9, stri9);     ok := ok and stri9 = "12345678901234567890";
    if not ok then
      writeln(" ***** String append with one self reference does not work correct.");
    end if;
  end func;


(**
 *  Test the case where source and destination of an append
 *  are identical.
 *)
const proc: do_append (inout string: dest, ref string: source1, ref string: source2) is func
  begin
    dest &:= source1 & source2;
  end func;


const func boolean: check_string_append_self_ref2_short is func
  result
    var boolean: ok is TRUE;
  local
    var string: stri1  is "123456";
    var string: stri2  is "123456";
    var string: stri3  is "123456";
    var string: stri4  is "123456";
    var string: stri5  is "123456";
    var string: stri6  is "123456";
    var string: stri7  is "123456";
    var string: stri8  is "123456";
    var string: stri9  is "123456";
    var string: stri10 is "123456";
    var string: stri11 is "123456";
    var string: stri12 is "123456";
    var string: stri13 is "123456";
    var string: stri14 is "123456";
    var string: stri15 is "123456";
    var string: stri16 is "123456";
    var string: stri17 is "123456";
    var string: stri18 is "123456";
    var string: stri19 is "123456";
    var string: stri20 is "123456";
    var string: stri21 is "123456";
  begin
    stri1  &:= "789"              & stri1;              ok := ok and stri1  = "123456789123456";
    stri2  &:= stri2              & "789";              ok := ok and stri2  = "123456123456789";
    stri3  &:= stri3              & stri3;              ok := ok and stri3  = "123456123456123456";
    stri4  &:= "789"              & stri4[3 ..];        ok := ok and stri4  = "1234567893456";
    stri5  &:= stri5[3 ..]        & "789";              ok := ok and stri5  = "1234563456789";
    stri6  &:= stri6[3 ..]        & stri6[4 ..];        ok := ok and stri6  = "1234563456456";
    stri7  &:= "789"              & stri7[.. 3];        ok := ok and stri7  = "123456789123";
    stri8  &:= stri8[.. 3]        & "78";               ok := ok and stri8  = "12345612378";
    stri9  &:= stri9[.. 3]        & stri9[.. 4];        ok := ok and stri9  = "1234561231234";
    stri10 &:= "789"              & stri10[2 .. 4];     ok := ok and stri10 = "123456789234";
    stri11 &:= stri11[2 .. 4]     & "789";              ok := ok and stri11 = "123456234789";
    stri12 &:= stri12[2 .. 4]     & stri12[3 .. 5];     ok := ok and stri12 = "123456234345";
    stri13 &:= "789"              & stri13[2 len 4];    ok := ok and stri13 = "1234567892345";
    stri14 &:= stri14[2 len 4]    & "789";              ok := ok and stri14 = "1234562345789";
    stri15 &:= stri15[2 len 3]    & stri15[3 len 3];    ok := ok and stri15 = "123456234345";
    stri16 &:= "789"              & stri16[3 ..][.. 2]; ok := ok and stri16 = "12345678934";
    stri17 &:= stri17[3 ..][.. 2] & "789";              ok := ok and stri17 = "12345634789";
    stri18 &:= stri18[2 ..][.. 3] & stri18[3 ..][.. 2]; ok := ok and stri18 = "12345623434";
    do_append(stri19, "789",  stri19); ok := ok and stri19 = "123456789123456";
    do_append(stri20, stri20, "789");  ok := ok and stri20 = "123456123456789";
    do_append(stri21, stri21, stri21); ok := ok and stri21 = "123456123456123456";
    if not ok then
      writeln(" ***** String append with two self references does not work correct.");
    end if;
  end func;


const func boolean: check_string_append_self_ref2_long is func
  result
    var boolean: ok is TRUE;
  local
    var string: stri1  is "1234567890abcdef";
    var string: stri2  is "1234567890abcdef";
    var string: stri3  is "1234567890abcdef";
    var string: stri4  is "1234567890abcdef";
    var string: stri5  is "1234567890abcdef";
    var string: stri6  is "1234567890abcdef";
    var string: stri7  is "1234567890abcdef";
    var string: stri8  is "1234567890abcdef";
    var string: stri9  is "1234567890abcdef";
    var string: stri10 is "1234567890abcdef";
    var string: stri11 is "1234567890abcdef";
    var string: stri12 is "1234567890abcdef";
    var string: stri13 is "1234567890abcdef";
    var string: stri14 is "1234567890abcdef";
    var string: stri15 is "1234567890abcdef";
    var string: stri16 is "1234567890abcdef";
    var string: stri17 is "1234567890abcdef";
    var string: stri18 is "1234567890abcdef";
    var string: stri19 is "1234567890abcdef";
    var string: stri20 is "1234567890abcdef";
    var string: stri21 is "1234567890abcdef";
  begin
    stri1  &:= "456"              & stri1;              ok := ok and stri1  = "1234567890abcdef4561234567890abcdef";
    stri2  &:= stri2              & "456";              ok := ok and stri2  = "1234567890abcdef1234567890abcdef456";
    stri3  &:= stri3              & stri3;              ok := ok and stri3  = "1234567890abcdef1234567890abcdef1234567890abcdef";
    stri4  &:= "456"              & stri4[7 ..];        ok := ok and stri4  = "1234567890abcdef4567890abcdef";
    stri5  &:= stri5[7 ..]        & "456";              ok := ok and stri5  = "1234567890abcdef7890abcdef456";
    stri6  &:= stri6[7 ..]        & stri6[8 ..];        ok := ok and stri6  = "1234567890abcdef7890abcdef890abcdef";
    stri7  &:= "456"              & stri7[.. 3];        ok := ok and stri7  = "1234567890abcdef456123";
    stri8  &:= stri8[.. 3]        & "456";              ok := ok and stri8  = "1234567890abcdef123456";
    stri9  &:= stri9[.. 3]        & stri9[.. 4];        ok := ok and stri9  = "1234567890abcdef1231234";
    stri10 &:= "456"              & stri10[5 .. 8];     ok := ok and stri10 = "1234567890abcdef4565678";
    stri11 &:= stri11[5 .. 8]     & "456";              ok := ok and stri11 = "1234567890abcdef5678456";
    stri12 &:= stri12[5 .. 8]     & stri12[4 .. 7];     ok := ok and stri12 = "1234567890abcdef56784567";
    stri13 &:= "456"              & stri13[2 len 4];    ok := ok and stri13 = "1234567890abcdef4562345";
    stri14 &:= stri14[2 len 4]    & "456";              ok := ok and stri14 = "1234567890abcdef2345456";
    stri15 &:= stri15[2 len 4]    & stri15[3 len 5];    ok := ok and stri15 = "1234567890abcdef234534567";
    stri16 &:= "456"              & stri16[5 ..][.. 4]; ok := ok and stri16 = "1234567890abcdef4565678";
    stri17 &:= stri17[5 ..][.. 4] & "456";              ok := ok and stri17 = "1234567890abcdef5678456";
    stri18 &:= stri18[5 ..][.. 4] & stri18[6 ..][.. 3]; ok := ok and stri18 = "1234567890abcdef5678678";
    do_append(stri19, "456",  stri19); ok := ok and stri19 = "1234567890abcdef4561234567890abcdef";
    do_append(stri20, stri20, "456");  ok := ok and stri20 = "1234567890abcdef1234567890abcdef456";
    do_append(stri21, stri21, stri21); ok := ok and stri21 = "1234567890abcdef1234567890abcdef1234567890abcdef";
    if not ok then
      writeln(" ***** String append with two self references does not work correct.");
    end if;
  end func;


const func boolean: check_string_append_to_empty is func
  result
    var boolean: ok is TRUE;
  local
    var string: stri1  is "";
    var string: stri2  is "";
    var string: stri3  is "";
    var string: stri4  is "";
    var string: stri5  is "";
    var string: stri6  is "";
    var string: stri7  is "";
    var string: stri8  is "";
    var string: stri9  is "";
    var string: stri10 is "";
    var string: stri11 is "";
    var string: stri12 is "";
    var string: stri13 is "";
    var string: stri14 is "";
    var string: stri15 is "";
    var string: stri16 is "";
  begin
    stri1  &:=          ""   &          "";   ok := ok and stri1  = "";
    stri2  &:= striExpr("")  &          "";   ok := ok and stri2  = "";
    stri3  &:=          ""   & striExpr("");  ok := ok and stri3  = "";
    stri4  &:= striExpr("")  & striExpr("");  ok := ok and stri4  = "";
    stri5  &:=          ""   &          "c";  ok := ok and stri5  = "c";
    stri6  &:= striExpr("")  &          "c";  ok := ok and stri6  = "c";
    stri7  &:=          ""   & striExpr("c"); ok := ok and stri7  = "c";
    stri8  &:= striExpr("")  & striExpr("c"); ok := ok and stri8  = "c";
    stri9  &:=          "b"  &          "";   ok := ok and stri9  = "b";
    stri10 &:= striExpr("b") &          "";   ok := ok and stri10 = "b";
    stri11 &:=          "b"  & striExpr("");  ok := ok and stri11 = "b";
    stri12 &:= striExpr("b") & striExpr("");  ok := ok and stri12 = "b";
    stri13 &:=          "b"  &          "c";  ok := ok and stri13 = "bc";
    stri14 &:= striExpr("b") &          "c";  ok := ok and stri14 = "bc";
    stri15 &:=          "b"  & striExpr("c"); ok := ok and stri15 = "bc";
    stri16 &:= striExpr("b") & striExpr("c"); ok := ok and stri16 = "bc";
    if not ok then
      writeln(" ***** String append to an empty string does not work correct.");
    end if;
  end func;


const proc: check_string_append is func
  local
    var boolean: okay is TRUE;
    var boolean: ok is TRUE;
    var string: stri is "";
  begin
    stri := "";  stri &:=          "";   ok := ok and stri = "";
    stri := "";  stri &:= striExpr("");  ok := ok and stri = "";
    stri := "";  stri &:=          "b";  ok := ok and stri = "b";
    stri := "";  stri &:= striExpr("b"); ok := ok and stri = "b";
    stri := "a"; stri &:=          "";   ok := ok and stri = "a";
    stri := "a"; stri &:= striExpr("");  ok := ok and stri = "a";
    stri := "a"; stri &:=          "b";  ok := ok and stri = "ab";
    stri := "a"; stri &:= striExpr("b"); ok := ok and stri = "ab";

    stri := "";  stri &:=          ""   &          "";   ok := ok and stri = "";
    stri := "";  stri &:= striExpr("")  &          "";   ok := ok and stri = "";
    stri := "";  stri &:=          ""   & striExpr("");  ok := ok and stri = "";
    stri := "";  stri &:= striExpr("")  & striExpr("");  ok := ok and stri = "";
    stri := "";  stri &:=          ""   &          "c";  ok := ok and stri = "c";
    stri := "";  stri &:= striExpr("")  &          "c";  ok := ok and stri = "c";
    stri := "";  stri &:=          ""   & striExpr("c"); ok := ok and stri = "c";
    stri := "";  stri &:= striExpr("")  & striExpr("c"); ok := ok and stri = "c";
    stri := "";  stri &:=          "b"  &          "";   ok := ok and stri = "b";
    stri := "";  stri &:= striExpr("b") &          "";   ok := ok and stri = "b";
    stri := "";  stri &:=          "b"  & striExpr("");  ok := ok and stri = "b";
    stri := "";  stri &:= striExpr("b") & striExpr("");  ok := ok and stri = "b";
    stri := "";  stri &:=          "b"  &          "c";  ok := ok and stri = "bc";
    stri := "";  stri &:= striExpr("b") &          "c";  ok := ok and stri = "bc";
    stri := "";  stri &:=          "b"  & striExpr("c"); ok := ok and stri = "bc";
    stri := "";  stri &:= striExpr("b") & striExpr("c"); ok := ok and stri = "bc";
    stri := "a"; stri &:=          ""   &          "";   ok := ok and stri = "a";
    stri := "a"; stri &:= striExpr("")  &          "";   ok := ok and stri = "a";
    stri := "a"; stri &:=          ""   & striExpr("");  ok := ok and stri = "a";
    stri := "a"; stri &:= striExpr("")  & striExpr("");  ok := ok and stri = "a";
    stri := "a"; stri &:=          ""   &          "c";  ok := ok and stri = "ac";
    stri := "a"; stri &:= striExpr("")  &          "c";  ok := ok and stri = "ac";
    stri := "a"; stri &:=          ""   & striExpr("c"); ok := ok and stri = "ac";
    stri := "a"; stri &:= striExpr("")  & striExpr("c"); ok := ok and stri = "ac";
    stri := "a"; stri &:=          "b"  &          "";   ok := ok and stri = "ab";
    stri := "a"; stri &:= striExpr("b") &          "";   ok := ok and stri = "ab";
    stri := "a"; stri &:=          "b"  & striExpr("");  ok := ok and stri = "ab";
    stri := "a"; stri &:= striExpr("b") & striExpr("");  ok := ok and stri = "ab";
    stri := "a"; stri &:=          "b"  &          "c";  ok := ok and stri = "abc";
    stri := "a"; stri &:= striExpr("b") &          "c";  ok := ok and stri = "abc";
    stri := "a"; stri &:=          "b"  & striExpr("c"); ok := ok and stri = "abc";
    stri := "a"; stri &:= striExpr("b") & striExpr("c"); ok := ok and stri = "abc";

    stri := "";  stri &:=          ""   &          ""   &          "";   ok := ok and stri = "";
    stri := "";  stri &:= striExpr("")  &          ""   &          "";   ok := ok and stri = "";
    stri := "";  stri &:=          ""   & striExpr("")  &          "";   ok := ok and stri = "";
    stri := "";  stri &:= striExpr("")  & striExpr("")  &          "";   ok := ok and stri = "";
    stri := "";  stri &:=          ""   &          ""   & striExpr("");  ok := ok and stri = "";
    stri := "";  stri &:= striExpr("")  &          ""   & striExpr("");  ok := ok and stri = "";
    stri := "";  stri &:=          ""   & striExpr("")  & striExpr("");  ok := ok and stri = "";
    stri := "";  stri &:= striExpr("")  & striExpr("")  & striExpr("");  ok := ok and stri = "";
    stri := "";  stri &:=          ""   &          ""   &          "d";  ok := ok and stri = "d";
    stri := "";  stri &:= striExpr("")  &          ""   &          "d";  ok := ok and stri = "d";
    stri := "";  stri &:=          ""   & striExpr("")  &          "d";  ok := ok and stri = "d";
    stri := "";  stri &:= striExpr("")  & striExpr("")  &          "d";  ok := ok and stri = "d";
    stri := "";  stri &:=          ""   &          ""   & striExpr("d"); ok := ok and stri = "d";
    stri := "";  stri &:= striExpr("")  &          ""   & striExpr("d"); ok := ok and stri = "d";
    stri := "";  stri &:=          ""   & striExpr("")  & striExpr("d"); ok := ok and stri = "d";
    stri := "";  stri &:= striExpr("")  & striExpr("")  & striExpr("d"); ok := ok and stri = "d";
    stri := "";  stri &:=          ""   &          "c"  &          "";   ok := ok and stri = "c";
    stri := "";  stri &:= striExpr("")  &          "c"  &          "";   ok := ok and stri = "c";
    stri := "";  stri &:=          ""   & striExpr("c") &          "";   ok := ok and stri = "c";
    stri := "";  stri &:= striExpr("")  & striExpr("c") &          "";   ok := ok and stri = "c";
    stri := "";  stri &:=          ""   &          "c"  & striExpr("");  ok := ok and stri = "c";
    stri := "";  stri &:= striExpr("")  &          "c"  & striExpr("");  ok := ok and stri = "c";
    stri := "";  stri &:=          ""   & striExpr("c") & striExpr("");  ok := ok and stri = "c";
    stri := "";  stri &:= striExpr("")  & striExpr("c") & striExpr("");  ok := ok and stri = "c";
    stri := "";  stri &:=          ""   &          "c"  &          "d";  ok := ok and stri = "cd";
    stri := "";  stri &:= striExpr("")  &          "c"  &          "d";  ok := ok and stri = "cd";
    stri := "";  stri &:=          ""   & striExpr("c") &          "d";  ok := ok and stri = "cd";
    stri := "";  stri &:= striExpr("")  & striExpr("c") &          "d";  ok := ok and stri = "cd";
    stri := "";  stri &:=          ""   &          "c"  & striExpr("d"); ok := ok and stri = "cd";
    stri := "";  stri &:= striExpr("")  &          "c"  & striExpr("d"); ok := ok and stri = "cd";
    stri := "";  stri &:=          ""   & striExpr("c") & striExpr("d"); ok := ok and stri = "cd";
    stri := "";  stri &:= striExpr("")  & striExpr("c") & striExpr("d"); ok := ok and stri = "cd";
    stri := "";  stri &:=          "b"  &          ""   &          "";   ok := ok and stri = "b";
    stri := "";  stri &:= striExpr("b") &          ""   &          "";   ok := ok and stri = "b";
    stri := "";  stri &:=          "b"  & striExpr("")  &          "";   ok := ok and stri = "b";
    stri := "";  stri &:= striExpr("b") & striExpr("")  &          "";   ok := ok and stri = "b";
    stri := "";  stri &:=          "b"  &          ""   & striExpr("");  ok := ok and stri = "b";
    stri := "";  stri &:= striExpr("b") &          ""   & striExpr("");  ok := ok and stri = "b";
    stri := "";  stri &:=          "b"  & striExpr("")  & striExpr("");  ok := ok and stri = "b";
    stri := "";  stri &:= striExpr("b") & striExpr("")  & striExpr("");  ok := ok and stri = "b";
    stri := "";  stri &:=          "b"  &          ""   &          "d";  ok := ok and stri = "bd";
    stri := "";  stri &:= striExpr("b") &          ""   &          "d";  ok := ok and stri = "bd";
    stri := "";  stri &:=          "b"  & striExpr("")  &          "d";  ok := ok and stri = "bd";
    stri := "";  stri &:= striExpr("b") & striExpr("")  &          "d";  ok := ok and stri = "bd";
    stri := "";  stri &:=          "b"  &          ""   & striExpr("d"); ok := ok and stri = "bd";
    stri := "";  stri &:= striExpr("b") &          ""   & striExpr("d"); ok := ok and stri = "bd";
    stri := "";  stri &:=          "b"  & striExpr("")  & striExpr("d"); ok := ok and stri = "bd";
    stri := "";  stri &:= striExpr("b") & striExpr("")  & striExpr("d"); ok := ok and stri = "bd";
    stri := "";  stri &:=          "b"  &          "c"  &          "";   ok := ok and stri = "bc";
    stri := "";  stri &:= striExpr("b") &          "c"  &          "";   ok := ok and stri = "bc";
    stri := "";  stri &:=          "b"  & striExpr("c") &          "";   ok := ok and stri = "bc";
    stri := "";  stri &:= striExpr("b") & striExpr("c") &          "";   ok := ok and stri = "bc";
    stri := "";  stri &:=          "b"  &          "c"  & striExpr("");  ok := ok and stri = "bc";
    stri := "";  stri &:= striExpr("b") &          "c"  & striExpr("");  ok := ok and stri = "bc";
    stri := "";  stri &:=          "b"  & striExpr("c") & striExpr("");  ok := ok and stri = "bc";
    stri := "";  stri &:= striExpr("b") & striExpr("c") & striExpr("");  ok := ok and stri = "bc";
    stri := "";  stri &:=          "b"  &          "c"  &          "d";  ok := ok and stri = "bcd";
    stri := "";  stri &:= striExpr("b") &          "c"  &          "d";  ok := ok and stri = "bcd";
    stri := "";  stri &:=          "b"  & striExpr("c") &          "d";  ok := ok and stri = "bcd";
    stri := "";  stri &:= striExpr("b") & striExpr("c") &          "d";  ok := ok and stri = "bcd";
    stri := "";  stri &:=          "b"  &          "c"  & striExpr("d"); ok := ok and stri = "bcd";
    stri := "";  stri &:= striExpr("b") &          "c"  & striExpr("d"); ok := ok and stri = "bcd";
    stri := "";  stri &:=          "b"  & striExpr("c") & striExpr("d"); ok := ok and stri = "bcd";
    stri := "";  stri &:= striExpr("b") & striExpr("c") & striExpr("d"); ok := ok and stri = "bcd";
    stri := "a"; stri &:=          ""   &          ""   &          "";   ok := ok and stri = "a";
    stri := "a"; stri &:= striExpr("")  &          ""   &          "";   ok := ok and stri = "a";
    stri := "a"; stri &:=          ""   & striExpr("")  &          "";   ok := ok and stri = "a";
    stri := "a"; stri &:= striExpr("")  & striExpr("")  &          "";   ok := ok and stri = "a";
    stri := "a"; stri &:=          ""   &          ""   & striExpr("");  ok := ok and stri = "a";
    stri := "a"; stri &:= striExpr("")  &          ""   & striExpr("");  ok := ok and stri = "a";
    stri := "a"; stri &:=          ""   & striExpr("")  & striExpr("");  ok := ok and stri = "a";
    stri := "a"; stri &:= striExpr("")  & striExpr("")  & striExpr("");  ok := ok and stri = "a";
    stri := "a"; stri &:=          ""   &          ""   &          "d";  ok := ok and stri = "ad";
    stri := "a"; stri &:= striExpr("")  &          ""   &          "d";  ok := ok and stri = "ad";
    stri := "a"; stri &:=          ""   & striExpr("")  &          "d";  ok := ok and stri = "ad";
    stri := "a"; stri &:= striExpr("")  & striExpr("")  &          "d";  ok := ok and stri = "ad";
    stri := "a"; stri &:=          ""   &          ""   & striExpr("d"); ok := ok and stri = "ad";
    stri := "a"; stri &:= striExpr("")  &          ""   & striExpr("d"); ok := ok and stri = "ad";
    stri := "a"; stri &:=          ""   & striExpr("")  & striExpr("d"); ok := ok and stri = "ad";
    stri := "a"; stri &:= striExpr("")  & striExpr("")  & striExpr("d"); ok := ok and stri = "ad";
    stri := "a"; stri &:=          ""   &          "c"  &          "";   ok := ok and stri = "ac";
    stri := "a"; stri &:= striExpr("")  &          "c"  &          "";   ok := ok and stri = "ac";
    stri := "a"; stri &:=          ""   & striExpr("c") &          "";   ok := ok and stri = "ac";
    stri := "a"; stri &:= striExpr("")  & striExpr("c") &          "";   ok := ok and stri = "ac";
    stri := "a"; stri &:=          ""   &          "c"  & striExpr("");  ok := ok and stri = "ac";
    stri := "a"; stri &:= striExpr("")  &          "c"  & striExpr("");  ok := ok and stri = "ac";
    stri := "a"; stri &:=          ""   & striExpr("c") & striExpr("");  ok := ok and stri = "ac";
    stri := "a"; stri &:= striExpr("")  & striExpr("c") & striExpr("");  ok := ok and stri = "ac";
    stri := "a"; stri &:=          ""   &          "c"  &          "d";  ok := ok and stri = "acd";
    stri := "a"; stri &:= striExpr("")  &          "c"  &          "d";  ok := ok and stri = "acd";
    stri := "a"; stri &:=          ""   & striExpr("c") &          "d";  ok := ok and stri = "acd";
    stri := "a"; stri &:= striExpr("")  & striExpr("c") &          "d";  ok := ok and stri = "acd";
    stri := "a"; stri &:=          ""   &          "c"  & striExpr("d"); ok := ok and stri = "acd";
    stri := "a"; stri &:= striExpr("")  &          "c"  & striExpr("d"); ok := ok and stri = "acd";
    stri := "a"; stri &:=          ""   & striExpr("c") & striExpr("d"); ok := ok and stri = "acd";
    stri := "a"; stri &:= striExpr("")  & striExpr("c") & striExpr("d"); ok := ok and stri = "acd";
    stri := "a"; stri &:=          "b"  &          ""   &          "";   ok := ok and stri = "ab";
    stri := "a"; stri &:= striExpr("b") &          ""   &          "";   ok := ok and stri = "ab";
    stri := "a"; stri &:=          "b"  & striExpr("")  &          "";   ok := ok and stri = "ab";
    stri := "a"; stri &:= striExpr("b") & striExpr("")  &          "";   ok := ok and stri = "ab";
    stri := "a"; stri &:=          "b"  &          ""   & striExpr("");  ok := ok and stri = "ab";
    stri := "a"; stri &:= striExpr("b") &          ""   & striExpr("");  ok := ok and stri = "ab";
    stri := "a"; stri &:=          "b"  & striExpr("")  & striExpr("");  ok := ok and stri = "ab";
    stri := "a"; stri &:= striExpr("b") & striExpr("")  & striExpr("");  ok := ok and stri = "ab";
    stri := "a"; stri &:=          "b"  &          ""   &          "d";  ok := ok and stri = "abd";
    stri := "a"; stri &:= striExpr("b") &          ""   &          "d";  ok := ok and stri = "abd";
    stri := "a"; stri &:=          "b"  & striExpr("")  &          "d";  ok := ok and stri = "abd";
    stri := "a"; stri &:= striExpr("b") & striExpr("")  &          "d";  ok := ok and stri = "abd";
    stri := "a"; stri &:=          "b"  &          ""   & striExpr("d"); ok := ok and stri = "abd";
    stri := "a"; stri &:= striExpr("b") &          ""   & striExpr("d"); ok := ok and stri = "abd";
    stri := "a"; stri &:=          "b"  & striExpr("")  & striExpr("d"); ok := ok and stri = "abd";
    stri := "a"; stri &:= striExpr("b") & striExpr("")  & striExpr("d"); ok := ok and stri = "abd";
    stri := "a"; stri &:=          "b"  &          "c"  &          "";   ok := ok and stri = "abc";
    stri := "a"; stri &:= striExpr("b") &          "c"  &          "";   ok := ok and stri = "abc";
    stri := "a"; stri &:=          "b"  & striExpr("c") &          "";   ok := ok and stri = "abc";
    stri := "a"; stri &:= striExpr("b") & striExpr("c") &          "";   ok := ok and stri = "abc";
    stri := "a"; stri &:=          "b"  &          "c"  & striExpr("");  ok := ok and stri = "abc";
    stri := "a"; stri &:= striExpr("b") &          "c"  & striExpr("");  ok := ok and stri = "abc";
    stri := "a"; stri &:=          "b"  & striExpr("c") & striExpr("");  ok := ok and stri = "abc";
    stri := "a"; stri &:= striExpr("b") & striExpr("c") & striExpr("");  ok := ok and stri = "abc";
    stri := "a"; stri &:=          "b"  &          "c"  &          "d";  ok := ok and stri = "abcd";
    stri := "a"; stri &:= striExpr("b") &          "c"  &          "d";  ok := ok and stri = "abcd";
    stri := "a"; stri &:=          "b"  & striExpr("c") &          "d";  ok := ok and stri = "abcd";
    stri := "a"; stri &:= striExpr("b") & striExpr("c") &          "d";  ok := ok and stri = "abcd";
    stri := "a"; stri &:=          "b"  &          "c"  & striExpr("d"); ok := ok and stri = "abcd";
    stri := "a"; stri &:= striExpr("b") &          "c"  & striExpr("d"); ok := ok and stri = "abcd";
    stri := "a"; stri &:=          "b"  & striExpr("c") & striExpr("d"); ok := ok and stri = "abcd";
    stri := "a"; stri &:= striExpr("b") & striExpr("c") & striExpr("d"); ok := ok and stri = "abcd";

    stri := "";   stri &:=          "";    ok := ok and stri = "";
    stri := "";   stri &:= striExpr("");   ok := ok and stri = "";
    stri := "";   stri &:=          "cd";  ok := ok and stri = "cd";
    stri := "";   stri &:= striExpr("cd"); ok := ok and stri = "cd";
    stri := "ab"; stri &:=          "";    ok := ok and stri = "ab";
    stri := "ab"; stri &:= striExpr("");   ok := ok and stri = "ab";
    stri := "ab"; stri &:=          "cd";  ok := ok and stri = "abcd";
    stri := "ab"; stri &:= striExpr("cd"); ok := ok and stri = "abcd";

    stri := "";   stri &:=          ""    &          "";    ok := ok and stri = "";
    stri := "";   stri &:= striExpr("")   &          "";    ok := ok and stri = "";
    stri := "";   stri &:=          ""    & striExpr("");   ok := ok and stri = "";
    stri := "";   stri &:= striExpr("")   & striExpr("");   ok := ok and stri = "";
    stri := "";   stri &:=          ""    &          "ef";  ok := ok and stri = "ef";
    stri := "";   stri &:= striExpr("")   &          "ef";  ok := ok and stri = "ef";
    stri := "";   stri &:=          ""    & striExpr("ef"); ok := ok and stri = "ef";
    stri := "";   stri &:= striExpr("")   & striExpr("ef"); ok := ok and stri = "ef";
    stri := "";   stri &:=          "cd"  &          "";    ok := ok and stri = "cd";
    stri := "";   stri &:= striExpr("cd") &          "";    ok := ok and stri = "cd";
    stri := "";   stri &:=          "cd"  & striExpr("");   ok := ok and stri = "cd";
    stri := "";   stri &:= striExpr("cd") & striExpr("");   ok := ok and stri = "cd";
    stri := "";   stri &:=          "cd"  &          "ef";  ok := ok and stri = "cdef";
    stri := "";   stri &:= striExpr("cd") &          "ef";  ok := ok and stri = "cdef";
    stri := "";   stri &:=          "cd"  & striExpr("ef"); ok := ok and stri = "cdef";
    stri := "";   stri &:= striExpr("cd") & striExpr("ef"); ok := ok and stri = "cdef";
    stri := "ab"; stri &:=          ""    &          "";    ok := ok and stri = "ab";
    stri := "ab"; stri &:= striExpr("")   &          "";    ok := ok and stri = "ab";
    stri := "ab"; stri &:=          ""    & striExpr("");   ok := ok and stri = "ab";
    stri := "ab"; stri &:= striExpr("")   & striExpr("");   ok := ok and stri = "ab";
    stri := "ab"; stri &:=          ""    &          "ef";  ok := ok and stri = "abef";
    stri := "ab"; stri &:= striExpr("")   &          "ef";  ok := ok and stri = "abef";
    stri := "ab"; stri &:=          ""    & striExpr("ef"); ok := ok and stri = "abef";
    stri := "ab"; stri &:= striExpr("")   & striExpr("ef"); ok := ok and stri = "abef";
    stri := "ab"; stri &:=          "cd"  &          "";    ok := ok and stri = "abcd";
    stri := "ab"; stri &:= striExpr("cd") &          "";    ok := ok and stri = "abcd";
    stri := "ab"; stri &:=          "cd"  & striExpr("");   ok := ok and stri = "abcd";
    stri := "ab"; stri &:= striExpr("cd") & striExpr("");   ok := ok and stri = "abcd";
    stri := "ab"; stri &:=          "cd"  &          "ef";  ok := ok and stri = "abcdef";
    stri := "ab"; stri &:= striExpr("cd") &          "ef";  ok := ok and stri = "abcdef";
    stri := "ab"; stri &:=          "cd"  & striExpr("ef"); ok := ok and stri = "abcdef";
    stri := "ab"; stri &:= striExpr("cd") & striExpr("ef"); ok := ok and stri = "abcdef";

    stri := "";   stri &:=          ""    &          ""    &          "";    ok := ok and stri = "";
    stri := "";   stri &:= striExpr("")   &          ""    &          "";    ok := ok and stri = "";
    stri := "";   stri &:=          ""    & striExpr("")   &          "";    ok := ok and stri = "";
    stri := "";   stri &:= striExpr("")   & striExpr("")   &          "";    ok := ok and stri = "";
    stri := "";   stri &:=          ""    &          ""    & striExpr("");   ok := ok and stri = "";
    stri := "";   stri &:= striExpr("")   &          ""    & striExpr("");   ok := ok and stri = "";
    stri := "";   stri &:=          ""    & striExpr("")   & striExpr("");   ok := ok and stri = "";
    stri := "";   stri &:= striExpr("")   & striExpr("")   & striExpr("");   ok := ok and stri = "";
    stri := "";   stri &:=          ""    &          ""    &          "gh";  ok := ok and stri = "gh";
    stri := "";   stri &:= striExpr("")   &          ""    &          "gh";  ok := ok and stri = "gh";
    stri := "";   stri &:=          ""    & striExpr("")   &          "gh";  ok := ok and stri = "gh";
    stri := "";   stri &:= striExpr("")   & striExpr("")   &          "gh";  ok := ok and stri = "gh";
    stri := "";   stri &:=          ""    &          ""    & striExpr("gh"); ok := ok and stri = "gh";
    stri := "";   stri &:= striExpr("")   &          ""    & striExpr("gh"); ok := ok and stri = "gh";
    stri := "";   stri &:=          ""    & striExpr("")   & striExpr("gh"); ok := ok and stri = "gh";
    stri := "";   stri &:= striExpr("")   & striExpr("")   & striExpr("gh"); ok := ok and stri = "gh";
    stri := "";   stri &:=          ""    &          "ef"  &          "";    ok := ok and stri = "ef";
    stri := "";   stri &:= striExpr("")   &          "ef"  &          "";    ok := ok and stri = "ef";
    stri := "";   stri &:=          ""    & striExpr("ef") &          "";    ok := ok and stri = "ef";
    stri := "";   stri &:= striExpr("")   & striExpr("ef") &          "";    ok := ok and stri = "ef";
    stri := "";   stri &:=          ""    &          "ef"  & striExpr("");   ok := ok and stri = "ef";
    stri := "";   stri &:= striExpr("")   &          "ef"  & striExpr("");   ok := ok and stri = "ef";
    stri := "";   stri &:=          ""    & striExpr("ef") & striExpr("");   ok := ok and stri = "ef";
    stri := "";   stri &:= striExpr("")   & striExpr("ef") & striExpr("");   ok := ok and stri = "ef";
    stri := "";   stri &:=          ""    &          "ef"  &          "gh";  ok := ok and stri = "efgh";
    stri := "";   stri &:= striExpr("")   &          "ef"  &          "gh";  ok := ok and stri = "efgh";
    stri := "";   stri &:=          ""    & striExpr("ef") &          "gh";  ok := ok and stri = "efgh";
    stri := "";   stri &:= striExpr("")   & striExpr("ef") &          "gh";  ok := ok and stri = "efgh";
    stri := "";   stri &:=          ""    &          "ef"  & striExpr("gh"); ok := ok and stri = "efgh";
    stri := "";   stri &:= striExpr("")   &          "ef"  & striExpr("gh"); ok := ok and stri = "efgh";
    stri := "";   stri &:=          ""    & striExpr("ef") & striExpr("gh"); ok := ok and stri = "efgh";
    stri := "";   stri &:= striExpr("")   & striExpr("ef") & striExpr("gh"); ok := ok and stri = "efgh";
    stri := "";   stri &:=          "cd"  &          ""    &          "";    ok := ok and stri = "cd";
    stri := "";   stri &:= striExpr("cd") &          ""    &          "";    ok := ok and stri = "cd";
    stri := "";   stri &:=          "cd"  & striExpr("")   &          "";    ok := ok and stri = "cd";
    stri := "";   stri &:= striExpr("cd") & striExpr("")   &          "";    ok := ok and stri = "cd";
    stri := "";   stri &:=          "cd"  &          ""    & striExpr("");   ok := ok and stri = "cd";
    stri := "";   stri &:= striExpr("cd") &          ""    & striExpr("");   ok := ok and stri = "cd";
    stri := "";   stri &:=          "cd"  & striExpr("")   & striExpr("");   ok := ok and stri = "cd";
    stri := "";   stri &:= striExpr("cd") & striExpr("")   & striExpr("");   ok := ok and stri = "cd";
    stri := "";   stri &:=          "cd"  &          ""    &          "gh";  ok := ok and stri = "cdgh";
    stri := "";   stri &:= striExpr("cd") &          ""    &          "gh";  ok := ok and stri = "cdgh";
    stri := "";   stri &:=          "cd"  & striExpr("")   &          "gh";  ok := ok and stri = "cdgh";
    stri := "";   stri &:= striExpr("cd") & striExpr("")   &          "gh";  ok := ok and stri = "cdgh";
    stri := "";   stri &:=          "cd"  &          ""    & striExpr("gh"); ok := ok and stri = "cdgh";
    stri := "";   stri &:= striExpr("cd") &          ""    & striExpr("gh"); ok := ok and stri = "cdgh";
    stri := "";   stri &:=          "cd"  & striExpr("")   & striExpr("gh"); ok := ok and stri = "cdgh";
    stri := "";   stri &:= striExpr("cd") & striExpr("")   & striExpr("gh"); ok := ok and stri = "cdgh";
    stri := "";   stri &:=          "cd"  &          "ef"  &          "";    ok := ok and stri = "cdef";
    stri := "";   stri &:= striExpr("cd") &          "ef"  &          "";    ok := ok and stri = "cdef";
    stri := "";   stri &:=          "cd"  & striExpr("ef") &          "";    ok := ok and stri = "cdef";
    stri := "";   stri &:= striExpr("cd") & striExpr("ef") &          "";    ok := ok and stri = "cdef";
    stri := "";   stri &:=          "cd"  &          "ef"  & striExpr("");   ok := ok and stri = "cdef";
    stri := "";   stri &:= striExpr("cd") &          "ef"  & striExpr("");   ok := ok and stri = "cdef";
    stri := "";   stri &:=          "cd"  & striExpr("ef") & striExpr("");   ok := ok and stri = "cdef";
    stri := "";   stri &:= striExpr("cd") & striExpr("ef") & striExpr("");   ok := ok and stri = "cdef";
    stri := "";   stri &:=          "cd"  &          "ef"  &          "gh";  ok := ok and stri = "cdefgh";
    stri := "";   stri &:= striExpr("cd") &          "ef"  &          "gh";  ok := ok and stri = "cdefgh";
    stri := "";   stri &:=          "cd"  & striExpr("ef") &          "gh";  ok := ok and stri = "cdefgh";
    stri := "";   stri &:= striExpr("cd") & striExpr("ef") &          "gh";  ok := ok and stri = "cdefgh";
    stri := "";   stri &:=          "cd"  &          "ef"  & striExpr("gh"); ok := ok and stri = "cdefgh";
    stri := "";   stri &:= striExpr("cd") &          "ef"  & striExpr("gh"); ok := ok and stri = "cdefgh";
    stri := "";   stri &:=          "cd"  & striExpr("ef") & striExpr("gh"); ok := ok and stri = "cdefgh";
    stri := "";   stri &:= striExpr("cd") & striExpr("ef") & striExpr("gh"); ok := ok and stri = "cdefgh";
    stri := "ab"; stri &:=          ""    &          ""    &          "";    ok := ok and stri = "ab";
    stri := "ab"; stri &:= striExpr("")   &          ""    &          "";    ok := ok and stri = "ab";
    stri := "ab"; stri &:=          ""    & striExpr("")   &          "";    ok := ok and stri = "ab";
    stri := "ab"; stri &:= striExpr("")   & striExpr("")   &          "";    ok := ok and stri = "ab";
    stri := "ab"; stri &:=          ""    &          ""    & striExpr("");   ok := ok and stri = "ab";
    stri := "ab"; stri &:= striExpr("")   &          ""    & striExpr("");   ok := ok and stri = "ab";
    stri := "ab"; stri &:=          ""    & striExpr("")   & striExpr("");   ok := ok and stri = "ab";
    stri := "ab"; stri &:= striExpr("")   & striExpr("")   & striExpr("");   ok := ok and stri = "ab";
    stri := "ab"; stri &:=          ""    &          ""    &          "gh";  ok := ok and stri = "abgh";
    stri := "ab"; stri &:= striExpr("")   &          ""    &          "gh";  ok := ok and stri = "abgh";
    stri := "ab"; stri &:=          ""    & striExpr("")   &          "gh";  ok := ok and stri = "abgh";
    stri := "ab"; stri &:= striExpr("")   & striExpr("")   &          "gh";  ok := ok and stri = "abgh";
    stri := "ab"; stri &:=          ""    &          ""    & striExpr("gh"); ok := ok and stri = "abgh";
    stri := "ab"; stri &:= striExpr("")   &          ""    & striExpr("gh"); ok := ok and stri = "abgh";
    stri := "ab"; stri &:=          ""    & striExpr("")   & striExpr("gh"); ok := ok and stri = "abgh";
    stri := "ab"; stri &:= striExpr("")   & striExpr("")   & striExpr("gh"); ok := ok and stri = "abgh";
    stri := "ab"; stri &:=          ""    &          "ef"  &          "";    ok := ok and stri = "abef";
    stri := "ab"; stri &:= striExpr("")   &          "ef"  &          "";    ok := ok and stri = "abef";
    stri := "ab"; stri &:=          ""    & striExpr("ef") &          "";    ok := ok and stri = "abef";
    stri := "ab"; stri &:= striExpr("")   & striExpr("ef") &          "";    ok := ok and stri = "abef";
    stri := "ab"; stri &:=          ""    &          "ef"  & striExpr("");   ok := ok and stri = "abef";
    stri := "ab"; stri &:= striExpr("")   &          "ef"  & striExpr("");   ok := ok and stri = "abef";
    stri := "ab"; stri &:=          ""    & striExpr("ef") & striExpr("");   ok := ok and stri = "abef";
    stri := "ab"; stri &:= striExpr("")   & striExpr("ef") & striExpr("");   ok := ok and stri = "abef";
    stri := "ab"; stri &:=          ""    &          "ef"  &          "gh";  ok := ok and stri = "abefgh";
    stri := "ab"; stri &:= striExpr("")   &          "ef"  &          "gh";  ok := ok and stri = "abefgh";
    stri := "ab"; stri &:=          ""    & striExpr("ef") &          "gh";  ok := ok and stri = "abefgh";
    stri := "ab"; stri &:= striExpr("")   & striExpr("ef") &          "gh";  ok := ok and stri = "abefgh";
    stri := "ab"; stri &:=          ""    &          "ef"  & striExpr("gh"); ok := ok and stri = "abefgh";
    stri := "ab"; stri &:= striExpr("")   &          "ef"  & striExpr("gh"); ok := ok and stri = "abefgh";
    stri := "ab"; stri &:=          ""    & striExpr("ef") & striExpr("gh"); ok := ok and stri = "abefgh";
    stri := "ab"; stri &:= striExpr("")   & striExpr("ef") & striExpr("gh"); ok := ok and stri = "abefgh";
    stri := "ab"; stri &:=          "cd"  &          ""    &          "";    ok := ok and stri = "abcd";
    stri := "ab"; stri &:= striExpr("cd") &          ""    &          "";    ok := ok and stri = "abcd";
    stri := "ab"; stri &:=          "cd"  & striExpr("")   &          "";    ok := ok and stri = "abcd";
    stri := "ab"; stri &:= striExpr("cd") & striExpr("")   &          "";    ok := ok and stri = "abcd";
    stri := "ab"; stri &:=          "cd"  &          ""    & striExpr("");   ok := ok and stri = "abcd";
    stri := "ab"; stri &:= striExpr("cd") &          ""    & striExpr("");   ok := ok and stri = "abcd";
    stri := "ab"; stri &:=          "cd"  & striExpr("")   & striExpr("");   ok := ok and stri = "abcd";
    stri := "ab"; stri &:= striExpr("cd") & striExpr("")   & striExpr("");   ok := ok and stri = "abcd";
    stri := "ab"; stri &:=          "cd"  &          ""    &          "gh";  ok := ok and stri = "abcdgh";
    stri := "ab"; stri &:= striExpr("cd") &          ""    &          "gh";  ok := ok and stri = "abcdgh";
    stri := "ab"; stri &:=          "cd"  & striExpr("")   &          "gh";  ok := ok and stri = "abcdgh";
    stri := "ab"; stri &:= striExpr("cd") & striExpr("")   &          "gh";  ok := ok and stri = "abcdgh";
    stri := "ab"; stri &:=          "cd"  &          ""    & striExpr("gh"); ok := ok and stri = "abcdgh";
    stri := "ab"; stri &:= striExpr("cd") &          ""    & striExpr("gh"); ok := ok and stri = "abcdgh";
    stri := "ab"; stri &:=          "cd"  & striExpr("")   & striExpr("gh"); ok := ok and stri = "abcdgh";
    stri := "ab"; stri &:= striExpr("cd") & striExpr("")   & striExpr("gh"); ok := ok and stri = "abcdgh";
    stri := "ab"; stri &:=          "cd"  &          "ef"  &          "";    ok := ok and stri = "abcdef";
    stri := "ab"; stri &:= striExpr("cd") &          "ef"  &          "";    ok := ok and stri = "abcdef";
    stri := "ab"; stri &:=          "cd"  & striExpr("ef") &          "";    ok := ok and stri = "abcdef";
    stri := "ab"; stri &:= striExpr("cd") & striExpr("ef") &          "";    ok := ok and stri = "abcdef";
    stri := "ab"; stri &:=          "cd"  &          "ef"  & striExpr("");   ok := ok and stri = "abcdef";
    stri := "ab"; stri &:= striExpr("cd") &          "ef"  & striExpr("");   ok := ok and stri = "abcdef";
    stri := "ab"; stri &:=          "cd"  & striExpr("ef") & striExpr("");   ok := ok and stri = "abcdef";
    stri := "ab"; stri &:= striExpr("cd") & striExpr("ef") & striExpr("");   ok := ok and stri = "abcdef";
    stri := "ab"; stri &:=          "cd"  &          "ef"  &          "gh";  ok := ok and stri = "abcdefgh";
    stri := "ab"; stri &:= striExpr("cd") &          "ef"  &          "gh";  ok := ok and stri = "abcdefgh";
    stri := "ab"; stri &:=          "cd"  & striExpr("ef") &          "gh";  ok := ok and stri = "abcdefgh";
    stri := "ab"; stri &:= striExpr("cd") & striExpr("ef") &          "gh";  ok := ok and stri = "abcdefgh";
    stri := "ab"; stri &:=          "cd"  &          "ef"  & striExpr("gh"); ok := ok and stri = "abcdefgh";
    stri := "ab"; stri &:= striExpr("cd") &          "ef"  & striExpr("gh"); ok := ok and stri = "abcdefgh";
    stri := "ab"; stri &:=          "cd"  & striExpr("ef") & striExpr("gh"); ok := ok and stri = "abcdefgh";
    stri := "ab"; stri &:= striExpr("cd") & striExpr("ef") & striExpr("gh"); ok := ok and stri = "abcdefgh";

    stri := "ab"; stri &:=          "cd"  &          "ef"  &          "gh"  &          "ij";  ok := ok and stri = "abcdefghij";
    stri := "ab"; stri &:= striExpr("cd") &          "ef"  &          "gh"  &          "ij";  ok := ok and stri = "abcdefghij";
    stri := "ab"; stri &:=          "cd"  & striExpr("ef") &          "gh"  &          "ij";  ok := ok and stri = "abcdefghij";
    stri := "ab"; stri &:= striExpr("cd") & striExpr("ef") &          "gh"  &          "ij";  ok := ok and stri = "abcdefghij";
    stri := "ab"; stri &:=          "cd"  &          "ef"  & striExpr("gh") &          "ij";  ok := ok and stri = "abcdefghij";
    stri := "ab"; stri &:= striExpr("cd") &          "ef"  & striExpr("gh") &          "ij";  ok := ok and stri = "abcdefghij";
    stri := "ab"; stri &:=          "cd"  & striExpr("ef") & striExpr("gh") &          "ij";  ok := ok and stri = "abcdefghij";
    stri := "ab"; stri &:= striExpr("cd") & striExpr("ef") & striExpr("gh") &          "ij";  ok := ok and stri = "abcdefghij";
    stri := "ab"; stri &:=          "cd"  &          "ef"  &          "gh"  & striExpr("ij"); ok := ok and stri = "abcdefghij";
    stri := "ab"; stri &:= striExpr("cd") &          "ef"  &          "gh"  & striExpr("ij"); ok := ok and stri = "abcdefghij";
    stri := "ab"; stri &:=          "cd"  & striExpr("ef") &          "gh"  & striExpr("ij"); ok := ok and stri = "abcdefghij";
    stri := "ab"; stri &:= striExpr("cd") & striExpr("ef") &          "gh"  & striExpr("ij"); ok := ok and stri = "abcdefghij";
    stri := "ab"; stri &:=          "cd"  &          "ef"  & striExpr("gh") & striExpr("ij"); ok := ok and stri = "abcdefghij";
    stri := "ab"; stri &:= striExpr("cd") &          "ef"  & striExpr("gh") & striExpr("ij"); ok := ok and stri = "abcdefghij";
    stri := "ab"; stri &:=          "cd"  & striExpr("ef") & striExpr("gh") & striExpr("ij"); ok := ok and stri = "abcdefghij";
    stri := "ab"; stri &:= striExpr("cd") & striExpr("ef") & striExpr("gh") & striExpr("ij"); ok := ok and stri = "abcdefghij";

    stri := "12345"; stri &:= '6';          ok := ok and stri = "123456";
    stri := "12345"; stri &:= chr(48);      ok := ok and stri = "123450";
    stri := "12345"; stri &:= str('6');     ok := ok and stri = "123456";
    stri := "12345"; stri &:= str(chr(48)); ok := ok and stri = "123450";

    stri := "12345"; stri &:= "456"         & str('6');     ok := ok and stri = "123454566";
    stri := "12345"; stri &:= str('6')      & "456";        ok := ok and stri = "123456456";
    stri := "12345"; stri &:= str('6')      & str('6');     ok := ok and stri = "1234566";
    stri := "12345"; stri &:= "456"         & str(chr(48)); ok := ok and stri = "123454560";
    stri := "12345"; stri &:= str(chr(48))  & "456";        ok := ok and stri = "123450456";
    stri := "12345"; stri &:= str(chr(48))  & str(chr(48)); ok := ok and stri = "1234500";

    ok := ok and check_string_append_self_ref1;
    ok := ok and check_string_append_self_ref2_short;
    ok := ok and check_string_append_self_ref2_long;
    ok := ok and check_string_append_to_empty;

    if not ok then
      writeln(" ***** String append does not work correct.");
      okay := FALSE;
    end if;
    if okay then
      writeln("String append works correct.");
    end if;
  end func;


const proc: check_string_assign_at is func
  local
    var boolean: okay is TRUE;
    var boolean: ok is TRUE;
    var string: stri is "";
    var integer: index is 0;
    var char: ch is 'X';
  begin
    stri := "a";    stri @:= [1] 'X'; ok := ok and stri = "X";
    stri := "ab";   stri @:= [1] 'X'; ok := ok and stri = "Xb";
    stri := "ab";   stri @:= [2] 'X'; ok := ok and stri = "aX";
    stri := "abc";  stri @:= [1] 'X'; ok := ok and stri = "Xbc";
    stri := "abc";  stri @:= [2] 'X'; ok := ok and stri = "aXc";
    stri := "abc";  stri @:= [3] 'X'; ok := ok and stri = "abX";
    stri := "abcd"; stri @:= [1] 'X'; ok := ok and stri = "Xbcd";
    stri := "abcd"; stri @:= [2] 'X'; ok := ok and stri = "aXcd";
    stri := "abcd"; stri @:= [3] 'X'; ok := ok and stri = "abXd";
    stri := "abcd"; stri @:= [4] 'X'; ok := ok and stri = "abcX";

    stri := "a";    stri @:= [1] ch; ok := ok and stri = "X";
    stri := "ab";   stri @:= [1] ch; ok := ok and stri = "Xb";
    stri := "ab";   stri @:= [2] ch; ok := ok and stri = "aX";
    stri := "abc";  stri @:= [1] ch; ok := ok and stri = "Xbc";
    stri := "abc";  stri @:= [2] ch; ok := ok and stri = "aXc";
    stri := "abc";  stri @:= [3] ch; ok := ok and stri = "abX";
    stri := "abcd"; stri @:= [1] ch; ok := ok and stri = "Xbcd";
    stri := "abcd"; stri @:= [2] ch; ok := ok and stri = "aXcd";
    stri := "abcd"; stri @:= [3] ch; ok := ok and stri = "abXd";
    stri := "abcd"; stri @:= [4] ch; ok := ok and stri = "abcX";

    stri := "a";    index := 1; stri @:= [index] 'X'; ok := ok and stri = "X";
    stri := "ab";   index := 1; stri @:= [index] 'X'; ok := ok and stri = "Xb";
    stri := "ab";   index := 2; stri @:= [index] 'X'; ok := ok and stri = "aX";
    stri := "abc";  index := 1; stri @:= [index] 'X'; ok := ok and stri = "Xbc";
    stri := "abc";  index := 2; stri @:= [index] 'X'; ok := ok and stri = "aXc";
    stri := "abc";  index := 3; stri @:= [index] 'X'; ok := ok and stri = "abX";
    stri := "abcd"; index := 1; stri @:= [index] 'X'; ok := ok and stri = "Xbcd";
    stri := "abcd"; index := 2; stri @:= [index] 'X'; ok := ok and stri = "aXcd";
    stri := "abcd"; index := 3; stri @:= [index] 'X'; ok := ok and stri = "abXd";
    stri := "abcd"; index := 4; stri @:= [index] 'X'; ok := ok and stri = "abcX";

    stri := "a";    index := 1; stri @:= [index] ch; ok := ok and stri = "X";
    stri := "ab";   index := 1; stri @:= [index] ch; ok := ok and stri = "Xb";
    stri := "ab";   index := 2; stri @:= [index] ch; ok := ok and stri = "aX";
    stri := "abc";  index := 1; stri @:= [index] ch; ok := ok and stri = "Xbc";
    stri := "abc";  index := 2; stri @:= [index] ch; ok := ok and stri = "aXc";
    stri := "abc";  index := 3; stri @:= [index] ch; ok := ok and stri = "abX";
    stri := "abcd"; index := 1; stri @:= [index] ch; ok := ok and stri = "Xbcd";
    stri := "abcd"; index := 2; stri @:= [index] ch; ok := ok and stri = "aXcd";
    stri := "abcd"; index := 3; stri @:= [index] ch; ok := ok and stri = "abXd";
    stri := "abcd"; index := 4; stri @:= [index] ch; ok := ok and stri = "abcX";

    stri := "a";    stri @:= [1] "X";    ok := ok and stri = "X";
    stri := "ab";   stri @:= [1] "X";    ok := ok and stri = "Xb";
    stri := "ab";   stri @:= [2] "X";    ok := ok and stri = "aX";
    stri := "ab";   stri @:= [1] "XY";   ok := ok and stri = "XY";
    stri := "abc";  stri @:= [1] "X";    ok := ok and stri = "Xbc";
    stri := "abc";  stri @:= [2] "X";    ok := ok and stri = "aXc";
    stri := "abc";  stri @:= [3] "X";    ok := ok and stri = "abX";
    stri := "abc";  stri @:= [1] "XY";   ok := ok and stri = "XYc";
    stri := "abc";  stri @:= [2] "XY";   ok := ok and stri = "aXY";
    stri := "abc";  stri @:= [1] "XYZ";  ok := ok and stri = "XYZ";
    stri := "abcd"; stri @:= [1] "X";    ok := ok and stri = "Xbcd";
    stri := "abcd"; stri @:= [2] "X";    ok := ok and stri = "aXcd";
    stri := "abcd"; stri @:= [3] "X";    ok := ok and stri = "abXd";
    stri := "abcd"; stri @:= [4] "X";    ok := ok and stri = "abcX";
    stri := "abcd"; stri @:= [1] "XY";   ok := ok and stri = "XYcd";
    stri := "abcd"; stri @:= [2] "XY";   ok := ok and stri = "aXYd";
    stri := "abcd"; stri @:= [3] "XY";   ok := ok and stri = "abXY";
    stri := "abcd"; stri @:= [1] "XYZ";  ok := ok and stri = "XYZd";
    stri := "abcd"; stri @:= [2] "XYZ";  ok := ok and stri = "aXYZ";
    stri := "abcd"; stri @:= [1] "XYZA"; ok := ok and stri = "XYZA";

    stri := "a";    index := 1; stri @:= [index] "X";    ok := ok and stri = "X";
    stri := "ab";   index := 1; stri @:= [index] "X";    ok := ok and stri = "Xb";
    stri := "ab";   index := 2; stri @:= [index] "X";    ok := ok and stri = "aX";
    stri := "ab";   index := 1; stri @:= [index] "XY";   ok := ok and stri = "XY";
    stri := "abc";  index := 1; stri @:= [index] "X";    ok := ok and stri = "Xbc";
    stri := "abc";  index := 2; stri @:= [index] "X";    ok := ok and stri = "aXc";
    stri := "abc";  index := 3; stri @:= [index] "X";    ok := ok and stri = "abX";
    stri := "abc";  index := 1; stri @:= [index] "XY";   ok := ok and stri = "XYc";
    stri := "abc";  index := 2; stri @:= [index] "XY";   ok := ok and stri = "aXY";
    stri := "abc";  index := 1; stri @:= [index] "XYZ";  ok := ok and stri = "XYZ";
    stri := "abcd"; index := 1; stri @:= [index] "X";    ok := ok and stri = "Xbcd";
    stri := "abcd"; index := 2; stri @:= [index] "X";    ok := ok and stri = "aXcd";
    stri := "abcd"; index := 3; stri @:= [index] "X";    ok := ok and stri = "abXd";
    stri := "abcd"; index := 4; stri @:= [index] "X";    ok := ok and stri = "abcX";
    stri := "abcd"; index := 1; stri @:= [index] "XY";   ok := ok and stri = "XYcd";
    stri := "abcd"; index := 2; stri @:= [index] "XY";   ok := ok and stri = "aXYd";
    stri := "abcd"; index := 3; stri @:= [index] "XY";   ok := ok and stri = "abXY";
    stri := "abcd"; index := 1; stri @:= [index] "XYZ";  ok := ok and stri = "XYZd";
    stri := "abcd"; index := 2; stri @:= [index] "XYZ";  ok := ok and stri = "aXYZ";
    stri := "abcd"; index := 1; stri @:= [index] "XYZA"; ok := ok and stri = "XYZA";

    stri := "a";    stri @:= [1] stri;          ok := ok and stri = "a";
    stri := "ab";   stri @:= [1] stri[1 len 1]; ok := ok and stri = "ab";
    stri := "ab";   stri @:= [1] stri[2 len 1]; ok := ok and stri = "bb";
    stri := "ab";   stri @:= [2] stri[1 len 1]; ok := ok and stri = "aa";
    stri := "ab";   stri @:= [2] stri[2 len 1]; ok := ok and stri = "ab";
    stri := "ab";   stri @:= [1] stri;          ok := ok and stri = "ab";
    stri := "abc";  stri @:= [1] stri[1 len 1]; ok := ok and stri = "abc";
    stri := "abc";  stri @:= [1] stri[2 len 1]; ok := ok and stri = "bbc";
    stri := "abc";  stri @:= [1] stri[3 len 1]; ok := ok and stri = "cbc";
    stri := "abc";  stri @:= [2] stri[1 len 1]; ok := ok and stri = "aac";
    stri := "abc";  stri @:= [2] stri[2 len 1]; ok := ok and stri = "abc";
    stri := "abc";  stri @:= [2] stri[3 len 1]; ok := ok and stri = "acc";
    stri := "abc";  stri @:= [3] stri[1 len 1]; ok := ok and stri = "aba";
    stri := "abc";  stri @:= [3] stri[2 len 1]; ok := ok and stri = "abb";
    stri := "abc";  stri @:= [3] stri[3 len 1]; ok := ok and stri = "abc";
    stri := "abc";  stri @:= [1] stri[1 len 2]; ok := ok and stri = "abc";
    stri := "abc";  stri @:= [1] stri[2 len 2]; ok := ok and stri = "bcc";
    stri := "abc";  stri @:= [2] stri[1 len 2]; ok := ok and stri = "aab";
    stri := "abc";  stri @:= [2] stri[2 len 2]; ok := ok and stri = "abc";
    stri := "abc";  stri @:= [1] stri;          ok := ok and stri = "abc";
    stri := "abcd"; stri @:= [1] stri[1 len 1]; ok := ok and stri = "abcd";
    stri := "abcd"; stri @:= [1] stri[2 len 1]; ok := ok and stri = "bbcd";
    stri := "abcd"; stri @:= [1] stri[3 len 1]; ok := ok and stri = "cbcd";
    stri := "abcd"; stri @:= [1] stri[4 len 1]; ok := ok and stri = "dbcd";
    stri := "abcd"; stri @:= [2] stri[1 len 1]; ok := ok and stri = "aacd";
    stri := "abcd"; stri @:= [2] stri[2 len 1]; ok := ok and stri = "abcd";
    stri := "abcd"; stri @:= [2] stri[3 len 1]; ok := ok and stri = "accd";
    stri := "abcd"; stri @:= [2] stri[4 len 1]; ok := ok and stri = "adcd";
    stri := "abcd"; stri @:= [3] stri[1 len 1]; ok := ok and stri = "abad";
    stri := "abcd"; stri @:= [3] stri[2 len 1]; ok := ok and stri = "abbd";
    stri := "abcd"; stri @:= [3] stri[3 len 1]; ok := ok and stri = "abcd";
    stri := "abcd"; stri @:= [3] stri[4 len 1]; ok := ok and stri = "abdd";
    stri := "abcd"; stri @:= [4] stri[1 len 1]; ok := ok and stri = "abca";
    stri := "abcd"; stri @:= [4] stri[2 len 1]; ok := ok and stri = "abcb";
    stri := "abcd"; stri @:= [4] stri[3 len 1]; ok := ok and stri = "abcc";
    stri := "abcd"; stri @:= [4] stri[4 len 1]; ok := ok and stri = "abcd";
    stri := "abcd"; stri @:= [1] stri[1 len 2]; ok := ok and stri = "abcd";
    stri := "abcd"; stri @:= [1] stri[2 len 2]; ok := ok and stri = "bccd";
    stri := "abcd"; stri @:= [1] stri[3 len 2]; ok := ok and stri = "cdcd";
    stri := "abcd"; stri @:= [2] stri[1 len 2]; ok := ok and stri = "aabd";
    stri := "abcd"; stri @:= [2] stri[2 len 2]; ok := ok and stri = "abcd";
    stri := "abcd"; stri @:= [2] stri[3 len 2]; ok := ok and stri = "acdd";
    stri := "abcd"; stri @:= [3] stri[1 len 2]; ok := ok and stri = "abab";
    stri := "abcd"; stri @:= [3] stri[2 len 2]; ok := ok and stri = "abbc";
    stri := "abcd"; stri @:= [3] stri[3 len 2]; ok := ok and stri = "abcd";
    stri := "abcd"; stri @:= [1] stri[1 len 3]; ok := ok and stri = "abcd";
    stri := "abcd"; stri @:= [1] stri[2 len 3]; ok := ok and stri = "bcdd";
    stri := "abcd"; stri @:= [2] stri[1 len 3]; ok := ok and stri = "aabc";
    stri := "abcd"; stri @:= [2] stri[2 len 3]; ok := ok and stri = "abcd";
    stri := "abcd"; stri @:= [1] stri;          ok := ok and stri = "abcd";
    stri := "abcd"; stri @:= [2] stri[3 len 1] & stri[2 .. 2]; ok := ok and stri = "acbd";

    stri := "abcdefghijklmnopqrstuvwxyz"; stri @:= [ 7] stri [13 len 11]; ok := ok and stri = "abcdefmnopqrstuvwrstuvwxyz";
    stri := "abcdefghijklmnopqrstuvwxyz"; stri @:= [13] stri [ 7 len 11]; ok := ok and stri = "abcdefghijklghijklmnopqxyz";
    if not ok then
      writeln(" ***** @:= for strings does not work correct.");
      okay := FALSE;
    end if;

    if okay then
      writeln("@:= for strings works correct.");
    end if;
  end func;


const proc: check_string_for is func
  local
    var boolean: okay is TRUE;
    var boolean: ok is TRUE;
    var string: stri is "";
    var integer: index is 0;
    var integer: count is 0;
    var char: ch is 'X';
  begin
    for ch range "" do
      ok := FALSE;
    end for;
    for ch range stri do
      ok := FALSE;
    end for;

    count := 0;
    for ch range "X" do
      incr(count);
      if ch <> 'X' then
        ok := FALSE;
      end if;
    end for;
    if count <> 1 then
      ok := FALSE;
    end if;

    count := 0;
    stri := "X";
    for ch range stri do
      incr(count);
      if ch <> 'X' then
        ok := FALSE;
      end if;
    end for;
    if count <> 1 then
      ok := FALSE;
    end if;

    count := 0;
    for ch range "abcdefghijklghijklmnopqxyz" do
      incr(count);
      if ch <> "abcdefghijklghijklmnopqxyz"[count] then
        ok := FALSE;
      end if;
    end for;
    if count <> 26 then
      ok := FALSE;
    end if;

    count := 0;
    stri := "abcdefghijklghijklmnopqxyz";
    for ch range stri do
      incr(count);
      if ch <> "abcdefghijklghijklmnopqxyz"[count] then
        ok := FALSE;
      end if;
    end for;
    if count <> 26 then
      ok := FALSE;
    end if;
    if not ok then
      writeln(" ***** for loops for strings do not work correct.");
      okay := FALSE;
    end if;

    ok := TRUE;
    for key index range "" do
      ok := FALSE;
    end for;
    stri := "";
    for key index range stri do
      ok := FALSE;
    end for;

    count := 0;
    for key index range "X" do
      incr(count);
      if index <> 1 then
        ok := FALSE;
      end if;
    end for;
    if count <> 1 then
      ok := FALSE;
    end if;

    count := 0;
    stri := "X";
    for key index range stri do
      incr(count);
      if index <> 1 then
        ok := FALSE;
      end if;
    end for;
    if count <> 1 then
      ok := FALSE;
    end if;

    count := 0;
    for key index range "abcdefghijklghijklmnopqxyz" do
      incr(count);
      if index <> count then
        ok := FALSE;
      end if;
    end for;
    if count <> 26 then
      ok := FALSE;
    end if;

    count := 0;
    stri := "abcdefghijklghijklmnopqxyz";
    for key index range stri do
      incr(count);
      if index <> count then
        ok := FALSE;
      end if;
    end for;
    if count <> 26 then
      ok := FALSE;
    end if;
    if not ok then
      writeln(" ***** for key loops for strings do not work correct.");
      okay := FALSE;
    end if;

    ok := TRUE;
    for ch key index range "" do
      ok := FALSE;
    end for;
    stri := "";
    for ch key index range stri do
      ok := FALSE;
    end for;

    count := 0;
    for ch key index range "X" do
      incr(count);
      if ch <> 'X' or index <> 1 then
        ok := FALSE;
      end if;
    end for;
    if count <> 1 then
      ok := FALSE;
    end if;

    count := 0;
    stri := "X";
    for ch key index range stri do
      incr(count);
      if ch <> 'X' or index <> 1 then
        ok := FALSE;
      end if;
    end for;
    if count <> 1 then
      ok := FALSE;
    end if;

    count := 0;
    for ch key index range "abcdefghijklghijklmnopqxyz" do
      incr(count);
      if ch <> "abcdefghijklghijklmnopqxyz"[count] or index <> count then
        ok := FALSE;
      end if;
    end for;
    if count <> 26 then
      ok := FALSE;
    end if;

    count := 0;
    stri := "abcdefghijklghijklmnopqxyz";
    for ch key index range stri do
      incr(count);
      if ch <> "abcdefghijklghijklmnopqxyz"[count] or index <> count then
        ok := FALSE;
      end if;
    end for;
    if count <> 26 then
      ok := FALSE;
    end if;
    if not ok then
      writeln(" ***** for var key loops for strings do not work correct.");
      okay := FALSE;
    end if;

    if okay then
      writeln("String for loops work correct.");
    end if;
  end func;


const proc: main is func

  local
    var string: stri is "";
  begin
    writeln;
    check_string_literal;
    check_string_comparisons;
    check_string_length;
    check_string_index;
    check_string_head;
    check_string_tail;
    check_string_range;
    check_string_substr;
    check_string_concat;
    check_string_mult;
    check_string_ops;
    check_string_funcs;
    check_string_split;
    check_string_join;
    check_string_assign;
    check_string_append;
    check_string_assign_at;
    check_string_for;
  end func;
