# [K (ngn/k)], <s>23</s> 16 bytes
-7 bytes by rereading question (specifically, "`^` will only appear as `^H`")

    {x_/3#-1+x?"^"}/

[Try it online!][TIO-knaf6bsw]

Removes one instance of `?^H` on each invocation, and is run until convergence (i.e. no more `^`'s are present).

* `{...}/` run function on (implicit) input until it converges
* `-1+x?"^"` get the index of the character immediately prior to the first `^` in `x`
* `x_/3#` drop the value occurring at that index three times

[K (ngn/k)]: https://bitbucket.org/ngn/k
[TIO-knaf6bsw]: https://tio.run/##fY2xCsIwFEV/5RGHKlpLraLoIKhDFgehcyTUJH3YJpKkWhC/vVakiAhyt8u5555DrXTTyOW9PkZJL4yH9Zow8ogaGfQJNdYJRrtszY2syEaAxkyAN@BzdCCNKTpCCe0LUXI9glwEDq7o0KNWIK0pITP2Yiz3Auhh3JriScLodPaezheMtt0OFXpeQGp5VfLP92/23CKHFE8vulL/UEa/tWTQPAE "K (ngn/k) – Try It Online"