Is there any difference between retesting and regression testing?

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.