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 \"$ENV{'TMPDIR'}\"...");

  # 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, "$ENV{'TMPDIR'}") || &tempfail("rgx: cannot open \"$ENV{'TMPDIR'}\"");
  @allfiles = grep(!/^\.+$/, readdir(SCANDIR));
  closedir(SCANDIR);

  foreach $f (@allfiles) {
    &debug("rgx: scanning \"$ENV{'TMPDIR'}/$f\"");
    open(SCANFILE, "$ENV{'TMPDIR'}/$f")||&tempfail("rgx: cannot open \"$ENV{'TMPDIR'}/$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  : $ENV{'TMPDIR'}\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 \"$ENV{'TMPDIR'}\" in $rgx_time secs");
}

