Código:
MERGE INTO A
USING (SELECT b1, b2, b3, b4, b5 FROM es_subconsulta_probada) B
ON(a.A1 = b.b1 and a.a2 = b.b2 and a.a3 = b.b3)
WHEN MATCHED THEN
UPDATE SET a.a4 = b.b4,
a.a5 = b.b5
No veo el ";" al final del merge, algunos se les pasa por alto. Debería funcionar correctamente sin necesidad de utilizar el insert dentro del merge, puede trabajar conrrectamente con el update. Como dijo matanga, puede ser un error de sintaxis.
Saludos,