4 - IF I can't do that on mainnet, can it be done in testnet or regtest for learning purposes?
As ranochigo said, you can try that out in mainnet but it doesn't pass through the requirements and would get rejected in the first place. You can probably go with regtest instead of testnet as you would be having the freedom of generating your own blocks in a matter of few minutes and you would be the sole controller of what gets mined and what gets added to the blocks. You don't need to depend on the difficulty/peers which is common in the testnet and mainnet. On top of that, at times testnet miners use ASICs to mine testnet coins thereby increasing the difficulty and hence at regular intervals difficulty get reversed back.
If you need to learn about the exact generation of coins and adding transactions to the block and mining them as how it gets done in the mainnet, you should try out testnet where you will be having the role of either the normal user of bitcoin or the miner. But if you need to sound like satoshi and early miners
(doing whatever with blocks, mining in a few seconds and never relying on third party peers) you should definitely go with regression testing.
If you are not sure how to run the regtest mode, go to Settings -> Options -> Open Configuration File. Enter
regtest=1 close and reopen core software and you will get the regtest mode. Go to console and enter
generate 101 and you will mine 101 blocks to spend the first 50
BTC
I am also having a quite closer look on the proposed new test network
signet #18267 in which we will have a more practical approach towards testnet where we will be mining at more regular intervals. More on signet :
Signet and
How to get started