preg_replace轮换结果

preg_replace替换结果请问一下:$a (abcd)echo preg_replace(/\((.*?)\)/s,strtoupper(\\1),$str)

preg_replace替换结果
请问一下:

$a = '(abcd)';
echo preg_replace("/\((.*?)\)/s",strtoupper("\\1"),$str);

为什么输出的结果abcd不能变成大写呢?
谢谢!

[解决办法]
echo preg_replace("/\((.*?)\)/es",'strtoupper("\\1")',$a);
[解决办法]
echo preg_replace("/\((.*?)\)/es",'"<a href=\"#\">".strtoupper("\\1")."</a>"',$a);