I have these strings that I want to match using a regex:

* `es-us`
* `fr` (0 dashes)
* `fr-ca` (1 dash)
* `xx-xx-xx` (2 dashes)

I have a starting point of a regex as: `([a-z])+-([a-z])+-([a-z])+` which matches the xx-xx-xx example above, but strings with 1 dash or less is excluded. So, how can i make it so that it ALSO matches `fr-ca` or `fr` or `en-us` in the above examples? NOTE: ALL characters should be allowed, not just `fr-ca` or `fr`