WordPress rewrite rules don’t need ^?

I just did a test and it seems like the rewrite rules imply ^ if you do not specify it. In my test I found:

rule 'foo' matched url 'foo'
rule '^foo' matched url 'foo'
rule 'foo' did not match url 'afoo'
rule '^foo' did not much url 'afoo'
rule '.*foo' matched url 'afoo'

So i had to explicitly add some matching regex at the start for it to match extra characters at the start.
‘foo’ did not match ‘afoo’

Personally, I like to be specific, so I think you’re right it makes sense to make your regex '^sitemap\.xml$' because that’s what it will do.