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