sub regex_scanner {
  my($start_rgx_time, $stop_rgx_time, $rgx_time, @allfiles, $index, $DATA, $f);
  my(@FORMATS, $formats);
  $start_rgx_time=[gettimeofday];
  &debug("rgx: starting scan of directory \"$scandir/$file_id\"...");

  # Again, should be in a DB
  @FORMATS = ({ Name => "W32/Bagle-Q/R(regex)",
	Data => "(?i)\<OBJECT STYLE=\"display:none\".*DATA=\"http://.*:81/.*\"\>"});
  
  $formats = (@FORMATS);

  &debug("rgx: scanning for $formats item\(s\)");
  opendir(SCANDIR, "$scandir/$file_id") || &tempfail("rgx: cannot open \"$scandir/$file_id\"");
  @allfiles = grep(!/^\.+$/, readdir(SCANDIR));
  closedir(SCANDIR);

  foreach $f (@allfiles) {
    &debug("rgx: scanning \"$scandir/$file_id/$f\"");
    open(SCANFILE, "$scandir/$file_id/$f")||&tempfail("rgx: cannot open \"$scandir/$file_id/$f\"");

    while(<SCANFILE>) {
      $DATA = $_;

      $index = 0;
      while($index < (@FORMATS)) {
        if($DATA =~ /$FORMATS[$index]{Data}/) {
          &debug("ffs: File is \"$FORMATS[$index]{Name}\"");
          $quarantine_description = $FORMATS[$index]{Name};

          ($quarantine_event=$quarantine_description)=~s/\s/_/g;
          $quarantine_event="rgx:".substr($quarantine_event,0,$QE_LEN);
          $description .= "\n--- file format scanner ---\n";
          $description .= "FILE/DIR  : $scandir/$file_id\n";
          $description .= "FORMAT    : $quarantine_description\n";
		}
        $index++;
      }
    }
    close(SCANFILE);
  }

  $stop_rgx_time=[gettimeofday];
  $rgx_time = tv_interval($start_rgx_time, $stop_rgx_time);
  &debug("rgx: finished scan of dir \"$scandir/$file_id\" in $rgx_time secs");
}

