Regression testing is carried out at the end of the development process or at the end of a sprint to make sure that the whole website or app continues to work correctly and that no new issues have been introduced.
We normally think of regression testing in cycles, so that once a major piece of work has been completed and the initial testing has been carried out, bugs raised, fixed and verified, a regression test cycle would then commence.
For agile testing, we would normally have some element of regression testing in each sprint but it really depends on the stories that are included in the sprint. At an early stage to an agile project there may be nothing to gain by carrying out regression testing but nearer to the end of the project there should be regression testing as the project is getting ready for launch.
If a regression test cycle results in multiple issues being raised then another regression test cycle may be required once those issues are fixed and verified.