Update: Note failure in the case of 'an log'.
c:\@Work\Perl\monks\MadhAric>perl -wMstrict -le
"my $string = 'A log and a axe, an log and an axe';
print qq{'$string'};
;;
$string =~ s/\b([Aa])(\s+[aeiou])/$1n$2/g;
print qq{'$string'};
"
'A log and a axe, an log and an axe'
'A log and an axe, an log and an axe'
Even ignoring the subtleties of pronunciation you pointed out, the OPed problem statement is tricky. Some cases need 'n' deleted, so I don't see how it can be done (in a single regex) without decision-making in the replacement clause, i.e., use of the /e modifier or equivalent trick.
Give a man a fish: <%-(-(-(-<