VBのSplit関数をUWSCで

先ほど、UWSC掲示板の質問で
「VB6のSplit関数を再現したい」
という質問があった。
UWSCのTokenは、例えば区切り文字を"AB"と指定すると
"A"と"B"それぞれ個別で区切ってしまう。第3引数にTrueを付ければ"AB"も区切ってくれるが
個別で区切るのは変わらない。
"AB"を、質問している人が言っているように使われていない1文字(@とか)に
変換すれば大丈夫なのだが、ちと面倒だな。
"<#cr>"もCRとLFを、それぞれ別々に区別してしまうようだ。
この場合もTrueを付ければ、1つとして識別される。
いくつもの回答が出ていて邪魔になりそうなので、この場で連想配列による私なりの方法を。

//--------------Main------------------------------
Public hashtbl RetArray //連想配列をPublicで宣言

//1回目
Expression = "ABCDEFCDGHICDJK" //1回目の文字列、CD区切り
Split(Expression, "CD")

For a = 0 to Length(RetArray) - 1 //Length(RetArray)で配列の数
  Msgbox(RetArray[a]) //1回目の区切られた文字列を表示
Next

//2回目
vbcrlf = chr(13) + chr(10)
Expression = "ee" + vbcrlf + "ff" + vbcrlf + "gg" //2回目の文字列、CRLF区切り
Split(Expression, "<#cr>")

For b = 0 to Length(RetArray) - 1
  Msgbox(RetArray[b]) //2回目の区切られた文字列を表示
Next
//--------------------------------------------------
Procedure Split(Expression, Delimiter = " ")
  For d = 0 to Length(RetArray) - 1
    delkey = RetArray[d, hash_remove] //配列をリセット
  Next

  IfB Expression = "" Or Delimiter = "" Then //いずれかが未指定なら
    RetArray[0] = Expression
    Exit
  EndIf

  Dim i = 0
  REPEAT
    RetArray[i] = TOKEN(Delimiter, Expression, True) //Trueで連続した改行を区切る
    i = i + 1
  Until Expression = ""
FEnd

※一部の記述、知的な変数名は質問した人のをそのまま使っております。
※ZEROSAMさんのご指摘で、"DC"も"LFCR"も区切ってしまうとのこと。(んー、やっぱ変換した方が早いかな)