A colleague was using a | symbol (pipe) as a delimiter in a string.
Then used the Split token upon it.

This rule demonstrates the craziness of what happens...

<rule>
<description>Split Token funniness</description>
<conditions>
<and/>
</conditions>
<actions>
<do-set-local-variable name="VALUES" scope="policy">
<arg-string>
<token-text xml:space="preserve">This|That|The|Other</token-text>
</arg-string>
</do-set-local-variable>
<do-set-local-variable name="NODES-WRONG" scope="policy">
<arg-node-set>
<token-split delimiter="|">
<token-local-variable name="VALUES"/>
</token-split>
</arg-node-set>
</do-set-local-variable>
<do-set-local-variable name="NODES-RIGHT" scope="policy">
<arg-node-set>
<token-split delimiter="\|">
<token-local-variable name="VALUES"/>
</token-split>
</arg-node-set>
</do-set-local-variable>
</actions>
</rule>

Run it through Simulator and you get:


Toolkit Rule Loopback : Action:
do-set-local-variable("NODES-WRONG",scope="policy",arg-node-set(token-split("|",token-local-variable("VALUES")))).
Toolkit Rule Loopback :
arg-node-set(token-split("|",token-local-variable("VALUES")))
Toolkit Rule Loopback :
token-split("|",token-local-variable("VALUES"))
Toolkit Rule Loopback :
token-split("|",token-local-variable("VALUES"))
Toolkit Rule Loopback : token-local-variable("VALUES")
Toolkit Rule Loopback : Token Value: "This|That|The|Other".
Toolkit Rule Loopback : Arg Value: "This|That|The|Other".
Toolkit Rule Loopback : Token Value:
{"","T","h","i","s","|","T","h","a","t","|","T","h ","e","|","O","t","h","e","r",""}.
Toolkit Rule Loopback : Arg Value:
{"","T","h","i","s","|","T","h","a","t","|","T","h ","e","|","O","t","h","e","r",""}.
Toolkit Rule Loopback : Action:
do-set-local-variable("NODES-RIGHT",scope="policy",arg-node-set(token-split("\|",token-local-variable("VALUES")))).
Toolkit Rule Loopback :
arg-node-set(token-split("\|",token-local-variable("VALUES")))
Toolkit Rule Loopback :
token-split("\|",token-local-variable("VALUES"))
Toolkit Rule Loopback :
token-split("\|",token-local-variable("VALUES"))
Toolkit Rule Loopback : token-local-variable("VALUES")
Toolkit Rule Loopback : Token Value: "This|That|The|Other".
Toolkit Rule Loopback : Arg Value: "This|That|The|Other".
Toolkit Rule Loopback : Token Value: {"This","That","The","Other"}.
Toolkit Rule Loopback : Arg Value: {"This","That","The","Other"}.

Look at what happens when you use just a pipe symbol as the delimiter in
the Split token!

Use \| and it works properly. That field is NOT called out as a Regex
field! And predictably, [|] (The Regex set, consisting of just the pipe
symbol) works properly as well.

Now I am trying to think of a fun delimiter to do in Regex...