Possible differences between retesting and regression testing are as follows:
We perform retesting to verify the defect fixes. But, the regression testing assures that the bug fix does not break other parts of the application.
Regression test cases verify the functionality of some or all modules.
Regression testing ensures the re-execution of passed test cases. Whereas, retesting involves the execution of test cases that are in a failed state.
Retesting has a higher priority over regression. But in some cases, both get executed in parallel.