Eliminar comentarios HTML con PHP pero dejando condicionales

Actualmente estoy usando PHP y una expresión regular para eliminar todos los comentarios HTML de una página. El guión funciona bien ... demasiado bien. Elimina todos los comentarios, incluidos mis comentarios condicionales en el. Esto es lo que tengo:

<code><?php
  function callback($buffer)
  {
        return preg_replace('/<!--(.|\s)*?-->/', '', $buffer);
  }

  ob_start("callback");
?>
... HTML source goes here ...
<?php ob_end_flush(); ?>
</code>

Debido a que mi expresión regular no es muy buena, tengo problemas para tratar de averiguar cómo modificar el patrón para excluir comentarios condicionales como:

<code><!--[if !IE]><!-->
<link rel="stylesheet" href="/css/screen.css" type="text/css" media="screen" />
<!-- <![endif]-->

<!--[if IE 7]>
<link rel="stylesheet" href="/css/ie7.css" type="text/css" media="screen" />
<![endif]-->

<!--[if IE 6]>
<link rel="stylesheet" href="/css/ie6.css" type="text/css" media="screen" />
<![endif]-->
</code>

Aclamaciones

Respuestas a la pregunta(4)

Su respuesta a la pregunta