On page 34 of 70-461 Querying Microsoft SQL Server 2012 it says that an indentifier is regular if:
The rules say that the first character must be a letter in the range A through Z (lower or uppercase), underscore (_), at sign (@), or number sign (#). Subsequent characters can include letters, decimal numbers, at sign, dollar sign ($), number sign, or underscore.
However on pg 271 it says:
Even though you can embed special characters such as @, #, and $ in an identifier for a schema, table, or column name, that action makes the identifier delimited, no longer regular.
So to clarify would having special characters like the '$' an identifier regular or not
Having $
after the first character is part of the specification that defines a regular identifier and will not require the use of a delimiter.
I found the definition in SQL Server 2008 R2 Identifiers to be clearer than the one from page 34. It is essentially the same as the one on page 271, but with more detail.
Either you have misquoted pg 271 of the book, or your version is different than mine and has an error:
If you embed special characters other than @, #, and $ in an identifier for a schema, table, or column, name, that action makes the identifier delimited, no longer regular.
Here is a regular expression that will match a string that complies with the definition:
^[\p{letter}_@#][\p{Letter}\p{Number}_@#$]*$
Regex for flavors without unicode support:
^[a-zA-Z_@#][a-zA-Z\d_@#$]*$