diff --git a/src/index.js b/src/index.js
index <HASH>..<HASH> 100644
--- a/src/index.js
+++ b/src/index.js
@@ -25,7 +25,7 @@ function sortMentions(mentions) {
  * @return {RegExp}
  */
 function mentionRegExp(mention) {
-  return new RegExp(`^${escapeStringRegExp(mention)}(?:\\b|\\s|$)`, 'i');
+  return new RegExp(`^${escapeStringRegExp(mention)}(?:\\b|\\s|\\W|$)`, 'i');
 }
 
 /**
diff --git a/test/index.js b/test/index.js
index <HASH>..<HASH> 100644
--- a/test/index.js
+++ b/test/index.js
@@ -215,5 +215,15 @@ describe('utils/parseChatMarkup', () => {
         { type: 'mention', mention: 'user[afk]', raw: 'user[AFK]' },
       ]);
     });
+
+    it('parses @-mentions with no clear word boundary', () => {
+      expect(parseChatMarkup('hello @ReAnna!!!', {
+        mentions: ['ReAnna!!'],
+      })).to.eql([
+        'hello ',
+        { type: 'mention', mention: 'reanna!!', raw: 'ReAnna!!' },
+        '!',
+      ]);
+    });
   });
 });
fix mentions when username ends in punctuation. (#<I>)