^[[:space:]]*((static|virtual) +)?(const +)?([_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*( +const)?( *(\*(* const)?|&))* +[_a-zA-Z][_a-zA-Z0-9]* *\(((const +)?([_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*( +const)?( *(\*( *const)?|&))*( +[_a-zA-Z][_a-zA-Z0-9]*)?, *)*(const +([_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*|([_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]* +const)( +[_a-zA-Z][_a-zA-Z0-9]*)?(, *(const +)?([_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*( +const)?( *(\*(* const)?|&))*)*( +[_a-zA-Z][_a-zA-Z0-9]*)?(\)( *const)?( throw *\(.*\))?;|,$)
