The shorter, incomplete, but easier-to-digest-first rules as described by Jeff Atwood, but with an update due to changed behaviour:
- Only applies to other people in the comments that you are commenting on.
- Response must include @username that you are referring to, where "username" is a reasonable match to the user's current display name (as seen in the comments above yours).
- There must be a starts-with, case insensitive match of at least THREE characters to the displayname. UPDATE: @ab will only give a match if the third letter of the displayname is a non-letter.
- Spaces cannot be used to match, so if the person's display name is "Peter Smith" then just use @peter to match.
- Matching is performed in reverse chronological order, so if there are five people named "John" in the comments, writing "hey @john, have you considered apples?" will match the most recent John to comment.
These older rules don't include some later features: now the look up for names tries to look in more places for a match and tolerates omitted spaces. And: anyone who edits a question or answer is also on the list of people who are considered possible matches for notification. Hence, the official rules, as described on meta.SO:
Notifications apply to the author, commenters, and editors of the question or answer that you are commenting on—users not in that list cannot be notified. The question and answers are all considered independently. For example, if Alice was the author of, commented on, or edited the question or her answer, then you cannot notify her by commenting on Bob's answer (unless Alice also participated in that answer), and vice versa.
You must include @name, where name is a reasonable match to a user's current display name. Users who have not set a display name in their profile are not notified.
If the first word in the display name is at least three characters long, then there must be a starts-with, case-insensitive match of at least three characters in the display name. This means @a and @ab will never match anyone, unless a user uses a first word that is only two characters. Like: @Jo will notify Jo Miller, but not John, and @B. will notify B. Gates, but not B.Gates. If there are more than three characters in @name, then all given characters must match (neither @alix nor @aliceinwonderland will match user Alice).
Matching is performed in reverse chronological order, so if five people named John are participating, @john will match the most recent John. (Use the next rule to differentiate.)
Spaces are removed from the display names for matching purposes, so to match Peter Smith you may use @pet, @peter, @peters, or @petersmith. The last two are useful if Peter Jones is also participating. Single quotes, dots, dashes and underscores should not be removed.
Special characters are replaced with their simple equivalent. To reply to Piëre you can use both @piëre and @piere. And to reply to Jörg you could use @jorg, but not @joerg.
Comments containing more than one @name are blocked unless they contain a backtick.
In the latter case, only the first name mentioned using the @name syntax will be notified. For example, @alice @bob Hi!` will notify Alice (if she has participated in that post), but not Bob.
An exception is the case when the first @name either matched nobody, or matched the post's author (and thus isn't necessary); in this case, the next @name will be checked.
When editing a comment within its limited editing period, if you change or add @name, the notification may or may not reach the new recipient depending on timing.
The first author of the question or answer will always be notified of any new comment. There is no need to use @name to notify them. (You may still use it for clarity, if needed; however if only you and the author have been commenting on the post so far, the @name will be automatically removed from the beginning of the comment, as it adds no value.)
The notification must begin with a space or be at the start of the comment. For example, you cannot use markup such as italics.
Single trailing punctuation such as a dot, comma or colon is ignored. Like @name, yes works, but @name... no does not. (Though a dot is valid in a username, the last dot is removed for matching. Adding excessive dots is not supported.)
The notification only works for the username that is current at the time the comment is submitted, not any previous username(s) the target may have had.
Some examples of supported notifications:
@name some text
@name: some text
@name. Some text
@name, some text
some text, @name
some text, @name, more text
Some text, @name.
Examples that will not trigger notifications:
@name...
abc@name
*@name*
*@name:*
[@name](http://some-url)
@[name](http://some-url)
perl -e '"TH." =~ /(.*)\b(.*)/; print "[$1][$2]\n"'
prints[TH][.]
.