Hm-m, while the above solution works, but by way of nitpicking and because of TIMTOWTDI:
$1 is reset on each attempted match
$1 is reset on each successful match, and restored on each scope end. Scope end happens twice (rather, n + 1) in OP: 1st on every loop iteration (-n), second at program finishing but before executing END block(s).
>perl -wE "'a'=~/(a)/; 'a'=~/b/; say $1"
a
>perl -wE "'a'=~/(a)/; 'a'=~/a/; say $1"
Use of uninitialized value $1 in say at -e line 1.
>perl -wE "'a'=~/(a)/; END { say $1 }"
Use of uninitialized value $1 in say at -e line 1.
But we can abuse the fact that, unlike other global variables related to regular expressions, the $^R is not dynamically scoped. Further, let's match only once, and also have a little fun and save us a few keystrokes by using a secret (END will also do, of course):
>perl -ne "/^(.*) INFO.+Successfully sent(?{$1})/ }{ print $^R" file