Parabola:
y=ax^2+bx+c
Ray:
P=(t*s+x, u*s+y)

[pascal]function rayIntersect(a,b,c,t,u,x,y: single): single;
var d,s: single;
begin
d := sqrt(power(b*t+2*a*x*t-u,2)-4*a*t*t*(a*x*x+b*x+c-y));
s := -b*t-2*a*x*t+u;
result := min(s-d,s+d)/(2*a*t*t);
end;

function rayNormalSlope(a,b,x: single): single;
begin
result:=1/(2*a*x+b);
end;
[/pascal]

rayIntersect will find the parameter s for the ray which will indicate the nearest intersection point.

rayNormalSlope will indicate the slope of the normal at a certain x value on the parabola. Knowing all this it should be trivial to calculate the reflection

Edit: This code is very unsafe, and unoptimized. You should check if values are inside the range of the used functions