Регулярные выражения соответствия смайликов

Мы работаем над проектом, в котором мы хотим, чтобы пользователи могли использовать оба синтаксиса смайликов (например,:smile:, :heart:, :confused:,:stuck_out_tongue:) а также нормальные смайлики (вроде:), <3, :/, :p)

У меня проблемы с синтаксисом смайликов, потому что иногда эти последовательности символов встречаются в:

нормальные строки или URL -HTTP://example.comв рамках синтаксиса эмодзи -:pencil:

Как я могу найти эти последовательности символов смайлика, но не рядом с ними?

Все регулярные выражения, которые я использую для всех смайликов, огромны, так что вот урезанная версия:

(\:\)|\:\(|<3|\:\/|\:-\/|\:\||\:p)

Вы можете поиграть с демонстрацией этого в действии здесь:http://regexr.com/3a8o5

Ответы на вопрос(4)

Ваш ответ на вопрос