1.- The testnet in Bitcoin, is a fully functional blockchain, similar to Bitcoin, however, the currency is not real.
2.- Regtest mode is a blockchain just running in your local machine.
3.- The advantage of both testnet and regtest modes is that you can test your application without risking any real money or someone else money. Testnet can probably provide you a more similar environment than the mainnet. Regtest can be use to develop and test applications quickly and easily. A developer ( I believe) will probably first test on regnet, then Testnet and finally on the mainet.