ho una funzioncina per il bbcode

Codice PHP:
function bbcode($testo) {

        
$bb_prima = array(
        
'/\[code\](.*?)\[\/code\]/is'
        
);

        
$bb_dopo = array(
        
'<pre class="brush: text;">$1</pre>'
        
);

        
$testo nl2br(preg_replace($bb_prima$bb_dopo$testo));

        return 
$testo;

    } 
fin qui nessun problema, se non per il fatto che utilizzo per rappresentare il tag code SyntaxHighlighter/ e che usando la funzione nl2br mi mostra tutti i BR nel codice

esempio

codice:
[*code]
<?php

echo "asd";

?>
[*/code]
risultato

codice:

<?php



echo "asd";



?>
come faccio a far si che la funzione nl2br non venga eseguita tra i tag [*code][*/code] ?