Regex that allows the following:
foo(bar).qax(foo(bar).qax(foo(bar).qax(foo(bar).qax())))
The function foo(bar).qax()
is nested in itself recursively, like so foo(bar).qax(foo(bar).qax())
Which this regex permits. It also allows no digit as the first character and accepts underscores and dollarsigns in the syntax name. Can be used for objects w/ non-function property-members as well.
For example:
obj.foo.bar
hello.world.hello.world
a.b.c.d.e(a.b.c.d.e)
a.b.c.d.e(a.b.c.d.e(a.b.c.d.e(a.b.c.d.e())))
A(B(C().DEF()).ABC())
All the above will match