I think this is the uncommon case where it's less server-intensive to defer the capture to the RewriteCond, because 19 times out of 20 the hypothetical capture will just be thrown away otherwise. If your URLs never contain literal periods, the .* in lammert's version can be replaced with
RewriteRule [A-Z][^.]*\.html
(again, note lack of opening anchor) so the server never has to backtrack “Oh, whoops, I was supposed to leave room for .html at the end”.
RewriteRule ^/?
Is the rule lying loose in the config file (most lilkely a vhost section), or is it in a directory section (including htaccess)? The opening slash isn't optional; depending on where the rule is located, it’s either present or absent. Here it isn't relevant because you don’t need an opening anchor at all, but keep it in mind for other rules.
Edit: No matter what exact form you use, the redirect target needs to begin with the full protocol-plus-hostname:
https://www.example.com/etcetera
Otherwise there is the possibility of duplicate redirects.