add .C and .H to file extensions
expand template scope to <class A, class B, ...>
allow template arguments in function name
changed occurrences of [A-Za-z0-9_] to \w