in reply to ParseRecDescent and csv-like data

Wouldn't:
Term: /[A-Z]|[A-Z][A-Z_]*[A-Z]/i {return \split(/_/,$item[1])}
Give you what you want? I could be wrong, it's off the top of my head, but it should return a term as a list of it's parts (which seems to be what you want).

-pete
"Worry is like a rocking chair. It gives you something to do, but it doesn't get you anywhere."