Factor1[poly] factorizes common terms in the summands of poly. It uses basically PolynomialGCD.
Factor1[poly]
PolynomialGCD
Overview, Factor2.
(a - x) (b - x) {Factor1[%], Factor[%]}
(a−x)(b−x)(a-x) (b-x)(a−x)(b−x)
{(a−x)(b−x),−((a−x)(x−b))}\{(a-x) (b-x),-((a-x) (x-b))\}{(a−x)(b−x),−((a−x)(x−b))}
ex = Expand[(a - b) (a + b)]
a2−b2a^2-b^2a2−b2
Factor[ex]
(a−b)(a+b)(a-b) (a+b)(a−b)(a+b)
Factor1[ex]