'/\[url\=(.*?)\](.*?)\[\/url\]/is',
'/\[url\](.*?)\[\/url\]/is',
'/(??<!(href\=\"|\s\>|\[url\]|\[url\=)))(http\:\/\/|https\:\/\/|ftp\:\/\/)(.*?)(?\s|\[|\<))/is'

da sostituire rispettivamente con:

'$2',
'$1',
'$1$2'

sono sulla strada giusta?