Вы не упоминаете язык программирования, но, в общем, предполагаете, что язык каким-то образом использует синтаксис /// типа regexp:
s/@\[([^\]]+)\]\([^:]+:([0-9]+)\)/<a href="someurl\/$2">$1<\/a>/g
Это будет работать в большинстве языков регулярных выражений. Например, это работает в perl (хотя я экранирую специальный символ @, который что-то означает в perl:
#echo "some other string @[Foo Foo](contact:2) some other string @[Bar Bar](contact:1) still some other string" | perl -p -e 's/\@\[([^\]]+)\]\([^:]+:([0-9]+)\)/<a href="someurl\/$2">$1<\/a>/g'
some other string <a href="someurl/2">Foo Foo</a> some other string <a href="someurl/1">Bar Bar</a> still some other string