The other day someone sent me an email asking me about reserved characters in MSBuild targets names. I didn't actually know of a published list of such a reference so I contacted the MSBuild team for more information and here is what I found out.
Illegal characters in target names
'$', '@', '(', ')', '%', '*', '?', '.'
Properties, items and item metadata elements must start with either a letter [a-Z] or an underscore (_).
Characters after the initial character for properties, items and item metadata can include: letters, numbers, underscore, and dashes (-).
Sayed Ibrahim Hashimi