"Снова" - это слово, обозначающее повторение чего-либо. При этом для говорящего это имеет нейтральное значение.
"Опять" - это тоже повторение чего-либо, но говорящий к этому относится негативно.
Сравните: "Опять дождь пошел" - говорящий недоволен дождем. "Снова дождь пошел" - для говорящего это не является помехой.
А говорят "не опять, а снова" тогда, когда говорящему делают замечание; когда недовольны тем, что он относится плохо к происходящему и хотят нейтрализовать это недовольство.
Он: Опять ты эту кофту надела
Она: Не опять, а снова!
В примере этой фразой жена выражает своё недовольство тем, что мужу не нравится ее кофта. Этой же фразой она ему говорит: "Ты не прав! Эта кофта мне очень идет!".