Needs["Algebra`PolynomialExtendedGCD`"]

Clear[PolynomialCR]
PolynomialCR[{a_, b_}, {p_, q_}] := 
      Module[{g, s, t}, 
{g, {s, t}} = 
          PolynomialExtendedGCD[p, q]; 
PolynomialMod[
          b*s*p + a*t*q, p*q]
]

PolynomialCR[{0, 1}, {x, x - 1}]

cr = PolynomialCR[{0, 1}, {(x^2) - 2, (x^2) + 1}]

PolynomialMod[cr, (x^2) + 1]

PolynomialRemainder[cr, (x^2) + 1, x]

PolynomialCR[alist_List, plist_List] := 
      Module[{a, p}, 
a = 
            PolynomialCR[{alist[[1]], alist[[2]]}, {plist[[1]], 
                plist[[2]]}]; 
p = 
            plist[[1]]*plist[[2]]; 
PolynomialCR[
            Join[{a}, Rest[Rest[alist]]], 
            Join[{p}, Rest[Rest[plist]]]]
] /; 
        Length[alist] == Length[plist] && Length[alist] > 2

cr = 
      PolynomialCR[{0, 0, 0, 1}, {(x^2) - 2, (x^3) + 1, x + 2, x}]

Map[
      PolynomialRemainder[cr, #, x] &, {(x^2) - 2, (x^3) + 1, x + 2, 
        x}]

Factor[cr]