While in many interviews they keep asking one common questions especially for a Testing interview.
Many people get confused thing they both are same, then I am sorry. They both are different in a way. While both testing means testing one more time the same functionality again, it differs in explaining when we do regression and when we do retesting?
Regression Testing: Regression testing is basically a tester maintains a suite of testcases called regression testcases of an existing and deployed application. That means, when some new features are added to the existing application, then a tester needs to make sure that old or existing application does not break in any way because of the new enhancement to the application.
Re-Testing: Retesting is basically for a particular defect. Lets say if you create a bug for a failed functionality and assign that defect to a developer. The developer then fixes the coding and assign the defect back to tester to retest it to make sure it is no more a defect. This kind of testing by tester is called retesting.