How is Public Key extracted from (message, digital signature, address)

I’m under the impression that a public key is revealed when you sign a message.

Given these 3 inputs. P2PKH Address, Digital Signature, Message.

Is the public key exposed? If so, how do you extract the public key from these 3 inputs?

Also, I’m still a little confused on why no applications do this with bech32 addresses. (I’ve heard it’s because derivation path isn’t defined… but will it ever be)?