This requires using grep's -o option which only prints the part of the line that matched the pattern.
We can match this with
grep -o 'AF=[^;]*' datafile
The pattern matches the literal string AF= followed by any number of non-semicolon characters. Against your file, it produces
AF=8.236e-06
AF=0.000265…
AF=1.647e-05
Using egrep (or equivalently grep -E) we can require that there be at least one character after the equal sign with
egrep -o 'AF=[^;]+' datafile
The reason that your attempted pattern is not working is that it matches AF= followed by any number of digits. Thus it can not pick up the decimal point (or the exponent symbol and negative sign).