i think your regex is fine (though it could be combined into one as blake suggests).
when i run the code above, it overwrites the array on each iteration, so it will always contain a single element -- the last in your file. i'd use push:
open (LOG, "$calog") or die "Can't open $calog: $!\n";
while ($line = <LOG>){
if ($line =~ /\'([\w.]+)\' added/) {
push(@certs, $1);
}
}
--cricket