What is the difference between functional testing and regression testing?

Functional testing is a testing process where we test the functionality/behavior of each functional component of the application…i.e. minimize button, transfer button, links etc.i.e we check what is each component doing in that application…
Regression testing is the testing the behavior of the application of the unchanged areas when there is a change in the build.i.e we check whether the changed requirement has altered the behavior of the unchanged areas. The impacted area may be the whole of the application or Some part of the application.