Aún siguen siendo ejemplos bastante redundantes, ya que cada sub-expresión comparte mucho en común.
Código PHP:
if ((preg_match("/<[^>]*script*\"?[^>]*>/i", $secvalue)) ||
(preg_match("/<[^>]*object*\"?[^>]*>/i", $secvalue)) ||
(preg_match("/<[^>]*iframe*\"?[^>]*>/i", $secvalue)) ||
(preg_match("/<[^>]*applet*\"?[^>]*>/i", $secvalue)) ||
(preg_match("/<[^>]*meta*\"?[^>]*>/i", $secvalue)) ||
(preg_match("/<[^>]*style*\"?[^>]*>/i", $secvalue)) ||
(preg_match("/<[^>]*form*\"?[^>]*>/i", $secvalue)) ||
(preg_match("/<[^>]*img*\"?[^>]*>/i", $secvalue)) ||
(preg_match("/<[^>]*onmouseover*\"?[^>]*>/i", $secvalue)) ||
(preg_match("/<[^>]*body*\"?[^>]*>/i", $secvalue)) ||
Incluso así sigue siendo bastante extensa y redundante.
Código PHP:
$regex = "/<[^>]*script*\"?[^>]*>|<[^>]*object*\"?[^>]*>|<[^>]*iframe*\"?[^>]*>|<[^>]*applet*\"?[^>]*>|<[^>]*meta*\"?[^>]*>|<[^>]*style*\"?[^>]*>|<[^>]*form*\"?[^>]*>|<[^>]*img*\"?[^>]*>|<[^>]*onmouseover*\"?[^>]*>|<[^>]*body*\"?[^>]*>|\([^>]*\"?[^)]*\)|/\"/i";
Eso, en términos prácticos, quedaría así.
Código PHP:
$regex = '/<[^>]*(?:script|object|iframe|applet|meta|style|form|img|onmouseover|body)*\"?[^>]*>/';
A ver si mueven este tema al sub-foro de RegExp, ya que es un problema muy a parte.