I dont completely agree with you. You are already not completely sure about your answer and to my opinion you are wrong when you say that only the affected parts are retested with a regression test. Software is integrated a lot nowadays and therefore its very hard to pinpoint affected parts. Changing something in part A might affect the input for part B and therefore part B has to be tested too.
The best way to perform a regression test is to test the whole, but because this is sometimes to much, you can try to pinpoint the parts affected and retest every part that has a direct relation with those parts.