No offense taken...truly.

I pulled Like2() because it is not reliable yet. Also, if Like() gets the one remaining issue (INSTR causing some 0 returns when 1 is appropriate) then it is fully functional and should be the UDF of choice.

My logic was getting more and more complicated, attempting to do the whole thing in a single FUNCTION.

I wasn't trying to one-up either. [Smile] The process for the parsing is a valuable exercise in logic...unfortunately, we found a few examples that really trip up some early assumptions that went into the code. I'm going to try to write-up a flowchart of a correct process.

I do want to contribute here, and I think I have so far. I am impressed with the community. Peers are hard to find in this skill-set!

Best to all,
Ed
_________________________
{Insert your favorite Witty Tag Line here}