<?php
$string = '@[Carlos]({user}:529) is going to rock @[NEW YORK]({city}:111)';
$regex = '/@\[([\w\s]*)]\({(\w*)}:(\d*)\)/';
$newString = preg_replace($regex, '<a href="/$2.php?id=$3">@$1</a>', $string);
echo $newString;
PD9waHAKJHN0cmluZyA9ICdAW0Nhcmxvc10oe3VzZXJ9OjUyOSkgaXMgZ29pbmcgdG8gcm9jayBAW05FVyBZT1JLXSh7Y2l0eX06MTExKSc7CiRyZWdleCA9ICcvQFxbKFtcd1xzXSopXVwoeyhcdyopfTooXGQqKVwpLyc7CgokbmV3U3RyaW5nID0gcHJlZ19yZXBsYWNlKCRyZWdleCwgJzxhIGhyZWY9Ii8kMi5waHA/aWQ9JDMiPkAkMTwvYT4nLCAkc3RyaW5nKTsKCmVjaG8gJG5ld1N0cmluZzsK