well it was a little easier to see than i thought. the reason its not working as far as i can see is because you put $Text in the second parameter. if you wanted the text in (.*?) to be there, you need to either use $1 or \1 to show the matched text.
with regular expressions, either preg_match or preg_replace, anything inside ( ) is going to be saved by php and put into special variables.
so if you have the pattern
/<a href=\"(.?)\">([>])</a>/
there the text in the first (.?) will go in $1 or \1, and ([>]) will go in $2 or \2. that way you can reference the text that was captured. in preg_match, it actually lets you specify an array for the matches to go in, so the case would be $matches[1] or $matches[2], \0 $0 or $matches[0] will always contain the full string that was matched.
see the php manual on regular expressions