I have seen multiple times when regression testing is performed.
1. Before releasing the code to customer or deploying, it is performed.
2. Whenever any change made in existing software, regression testing is performed.
3. Whenever any environment or platform gets changed, it is performed to make sure the robustness of software.