Regression testing is a test suite that is designed to cover as much of your application's functionality as possible.
The idea is that when you make a modification to your application, such as to remedy a bug or add new functionality, regression testing will ideally discover any issues (or regressions).
Because the great majority of tests were added in response to previous problems, you have regressed to a previous state if they detect a problem (in which the problem once again exists).
Regression testing, in other words, analyzes your application.
Small errors (called mutations) are introduced into your program to see if your test suite picks them up (errors that aren't supposed to fix faults or give new functionality).
The premise is that if your test suite fails to detect mutations, it is insufficient and has to be supplemented with new test cases. Mutation testing, in other words, examines your test suite rather than your application.