Что ж, в регулярных выражениях есть очень интересные вещи: регулярные выражения жадные.
Даже если они найдут совпадение в начале предложения, они будут продолжать искать и пойдут. для последнего совпадения, доступного в предложении. В вашем случае он соответствует этому "referrer.com/default.aspx", потому что у вас есть регулярное выражение для сопоставления с .asp, и оно также будет соответствовать чему угодно с .asp *.
Итак, вам нужно быть очень конкретным при работе с регулярными выражениями.
Для этого вам следует попробовать следующее:
failregex = ^<HOST> -.*GET.*(\.asp|\.exe|\.pl|\.cgi|\scgi)\"\s\d*
Что-то вроде этого должно работать очень хорошо. Если в любом случае это не сработает, теперь вы знаете, в чем проблема, и я уверен, что вы сможете исправить ее, немного покопавшись в регулярных выражениях.
Надеюсь, это помогло.