文字変数を参照するすべてのコンテキストで、代わりにサブストリング (その変数内の文字の順次サブセット) を参照することができます。例えば、myVar という変数の値が「ABCD」である場合、myVar[2:3] として、2 番目と 3 番目の文字である「BC」を参照することができます。
また、ターゲット・サブストリングが固定長である場合は、assignment 文の左側にサブストリングを指定することができます。 ソースがサブストリングよりも短い場合は、サブストリングの領域にブランクが埋め込まれ、ソース・テキストがサブストリングよりも長い場合は、テキストが切り捨てられます。
ソース変数から同じ変数のサブストリングにデータを代入すると (例えば、myResult[1:5] = myResult) 問題が発生することがあります。 このようなストレージのオーバーラップの使用は、EGL デバッガーおよび EGL 生成の Java™ ではサポートされていますが、EGL 生成の COBOL ではサポートされていません。

fromIndex が toIndex よりも大きいと、例外が発生します。
どちらの索引値もバイト位置を表しますが、textVariable が、DBCHAR 型または UNICODE 型の場合を除きます。その場合、値は 2 バイト文字の位置を表します。
textVariable がストリング (長さ制限なし) である場合、索引の値は、1 からそのストリングの長さまでの範囲になります。
textVariable が長さ制限のあるストリングである場合、索引の値は、1 から変数宣言で指定した長さまでの範囲になります。 指定した位置に文字がない場合、ターゲット・サブストリングの内容は、ターゲット・タイプに応じて変わります。 ターゲット・タイプが STRING の場合、結果は空ストリングです。 それ以外の場合、ターゲットはブランクで埋め込まれます。
アラビア語やヘブライ語などの双方向言語で作業している場合でも、左端の文字からカウントしてください。
limited string(20);
s string;
limited = "123456789";
s = limited[11:12]; // エラーはありません。s の値は、"" (空ストリング) です。
s = limited[8:12]; // エラーはありません。s の値は、"89" です。
limited = s[8:12]; // s に長さ制限がないためのエラーです。
// 最後の有効位置は最後の文字があるところです。
limited string(20) = "123456789";
s string = "abc";
limited[12:14] = s; // エラーはありません。
制限された値は "123456789 abc" になっています
: