Для сопоставления тегов @ и # я бы предложил использовать метаттерн \ w (соответствует символам слова - чтобы он совпадал с цифрами и буквами, но не с пробелами / пунктуацией). Таким образом, вы хотите, чтобы что-то вроде следующих шаблонов вытащило соответствующие элементы:
(@\w+)
(#\w+)
Для сопоставления URL-адресов простой, но наивный шаблон будет состоять в том, чтобы просто соответствовать http: //, за которым следует любой непробельный пробел:
(http://\S+)
Однако в URL-адресах есть недопустимые символы, которые могут быть захвачены этим. Более сложный шаблон, который допускает только символы, допустимые в URL, будет следующим:
(http://[a-zA-Z0-9+$_.+!*'(),#/-]+)