> with( StringTools ): # bind package exports at the top-level > s := "dzrIemaWWIMidXYZwGiqkOOn": > s[1..4]; # pick a prefix "dzrI" > IsPrefix( s[ 1 .. 4 ], s ); # check it true > s[ -4 .. -1 ]; # pick a suffix "kOOn" > IsSuffix( s[ -4 .. -1 ], s ); # check it true > p := Search( "XYZ", s ); # find a substring p := 14 > s[ p .. p + 2 ]; # check "XYZ" > SearchAll( [ "WWI", "XYZ" ], s ); # search for multiple patterns [8, 1], [14, 2] > to 3 do s := cat( s, s ) end: length( s ); # build a longer string by repeated doubling 192 > p := SearchAll( "XYZ", s ); # find all occurrences p := 14, 38, 62, 86, 110, 134, 158, 182 > {seq}( s[ i .. i + 2 ], i = p ); # check them {"XYZ"}