On Feb 7, 7:02 ¨Βν¬ κΟθξ Όξετ®®®ΐηναιμ®γονΎ χςοτεΊ > [Note: ¨Βαςτσ οζ τθισ νεσσαηχεςε ςενοφετο ναλε ιτ μεηαποστ®έ > > Here is an idea and tell me if it could be accomplished by some other means. > > To parse a logic statement like this: > > fn:function3(fn:function2(fn:function1(xargs))) > > Using a regex sorta like so to grep the function-start-pattern(s) : > > /\A((fn\:[\w\-]+)[ ]*\([ ]*)+\z/i > > It would be nice to ensure the proper count of ')', without confusion if say > the xargs had ')' literal or escaped string value(s) in there. > > One way is to provide a count ref for function-start-pattern, so I could > then group a pattern for match on post-xargs ')' and force the {min,max} > count by some backref to count-of-(function-start-pattern) =X and put that > in there for the (function-end-pattern)+{X,X}. > > Then it might be something like this (ignore the lack of a match on possible > xargs for now) : > > /\A((fn\:[\w\-]+)[ ]*\([ ]*)+[ ]*(\)){$#1,$#1}\z/i > > Where $#1 would be the count ref of the first group etc. Then there would be > matching count-left-side-( and count-right-side-). > > Or I don't understand enuf about the internals of regex to know that this is > impossible. > > -ntcm Could you use the awk statement to further parse here?