htaccess %1 not working correctly

I've been pulling my hair out over this one, though I'm sure it's something incredibly simple...

I have a site with a simple domain (i.e., and I have my htaccess file setup so that rewrites it to like so:

RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$

RewriteRule ^about(\/?)$ about.php
RewriteRule ^contact((-?us)?)(\/?)$ contact.php
RewriteRule ^register(\/?)$ register.php

What I am after is for when a user goes to or etc. (for languages), it slaps something like ?lang=fr or &lang=fr (? or & depending on if there are other URL parameters)

I have tried something like this:

RewriteCond %{HTTP_HOST} ^(\w{2})\.example\.com$

RewriteRule ^about(\/?)$ about.php?lang=%1
RewriteRule ^contact((-?us)?)(\/?)$ contact.php?lang=%1
RewriteRule ^register(\/?)$ register.php?lang=%1

I tested using :

The above works alright, putting in "" it returns "", but if I try "" it returns "".

I did try looking around for some generic examples, but none seem to meet quite what I'm after, I appreciate any help :)