Well im guessing that the function list works in the same way as the class viewer so it would be pretty easy to just edit the source of cTags, recompile and use that instead of the default version that you download from the web.
b) [ ^t]+ ... followed by 1 or more spaces and/or tabs
c) [ ^t^*]++ ... followed by 0 or more asterisk and/or spaces and/or tabs
d) ^([0-9A-Za-z_^-]+^) ... followed by a string which contains only numbers, characters, underscores and hyphens. This string is the function name which should be displayed in the function list.
e) [ ^t]++ ... followed by 0 or more spaces and/or tabs
f) ([~);]+) ... followed by a round bracket and a string which does not contain ) or ; (this includes also line endings CRLF!) and a closing round bracket
g) and last with a character that is not a semicolon immediatelly after the closing ).
The second one is for general usage and similar to first one. To avoid something like if ( var=15 ) to be identified as function, after opening ( only white spaces are allowed til first line ending and the function definition must be a multi-line definition.
The problem with the regular expression for multi-line function definitions is to securely detect the function definitions and not conditions and function calls. The hit rate for correct function names found can be improved by adjusting the regular expression as much as possible to your personal programming style. For example if you always add comments to a multi-line function definition with /* */ in the second line it would be helpful to add this to the regular expression to increase the positive hit rate. But I don't know your programming style.
Best regards from an UC/UE/UES for Windows user from Austria