"arbitrary grammars"? Certainly not! More like "arbitrary context-free grammars" or "arbitrary unambiguous context-free grammars", eh? Still, cool software.
Oh thanks, you're right with that. Corrected.
Guenther - Welcome to pyparsing! I'm glad you like the intuitive way to combine elements into more complex expressions. Not sure whether this goes with or against your RE experience, but try to define your grammar just in terms of the non-whitespace characters. For example, you can parse "foo=42" or "foo = 42" with the same grammar Word(alphas) + '=' + Word(nums) - pyparsing skips over whitespace by default. No need for that distracting '\s*' clutter! If you have questions, post them on the Wiki home page Discussion tab, or on the pyparsing mailing list. -- Paul