Ваш %{NOTSPACE:request}
соответствует любому 1 или более непробельным символам до HTTP/1.1" 502 85...
, так как шаблон NOTSPACE
равен \S+
. Таким образом, он соответствует всей подстроке /id/profile.pl?user=285&device=Bg3tlX
.
Вы не можете использовать только URIPATH
или URIPARAM
, потому что вам все равно нужно сопоставить остальную часть ввода. Вы должны использовать оба, но сделать URIPARAM
необязательным после URIPATH
, заключив его в необязательную группу без захвата, (?:...)?
.
Итак, замените %{NOTSPACE:request}
на
%{URIPATH:request}(?:%{URIPARAM:requestparam})?
^^^ ^^
Демо на https://grokdebug.herokuapp.com/: