For some time, I've been using something like this to get my user's country (ISO-3166):

```
const region = navigator.language.split('-')[1]; // 'US'

```

I've always **assumed** the string would be similar to `en-US` -- where the country would hold the **2nd position** of the array. 

**I am thinking this assumption is incorrect**. [According to MDN docs](https://developer.mozilla.org/en-US/docs/Web/API/NavigatorLanguage/language), `navigator.language` returns: *"string representing the language version as defined in BCP 47."* [Reading BCP 47](https://www.ietf.org/rfc/bcp/bcp47.txt), the primary language subtag is guaranteed to be first (e.g., 'en') but the region code is not guaranteed to be the 2nd subtag. There can be subtags that preceed and follow the region subtag. 

**For example `"sr-Latn-RS"` is a valid BCP 47 language tag:**

```
sr                |  Latn           |  RS
primary language  |  script subtag  |  region subtag

```

Is the value returned from `navigator.language` a subset of BCP 47 containing only language and region? Or is there a library or regex that is commonly used to extract the region subtag from a language tag?