I asked before how to do regex like matches :
DCG : zero-or-more, zero-or-one , one-or-more occurrences?
I use it for matching tokens :
%zero or