The difference between Retesting and Regression testing are as follows:
☛ Retesting is done to verify defects fixes where as regression is perform to check if the defect fix have not impacted other functionality that was working fine before doing changes in the code.
☛ Retesting is planned testing based on the defect fixes listed where as regression is not be always specific to any defect fix. Also regression can be executed for some modules or all modules.
☛ Retesting concern with executing those test cases that are failed earlier whereas regression concern with executing test cases that was passed in earlier builds.
☛ Retesting has higher priority over regression, but in some case retesting and regression testing are carried out in parallel.