constructor(sLanguageTag) {
			var aResult = rLanguageTag.exec(sLanguageTag.replace(/_/g, "-"));
			// If the given language tag string cannot be parsed by the regular expression above,
			// we should at least tell the developer why the Core fails to load.
			if (aResult === null ) {
				throw new TypeError("The given language tag '" + sLanguageTag + "' does not adhere to BCP-47.");
			}
			this.language = aResult[1] || null;
			this.script = aResult[2] || null;
			this.region = aResult[3] || null;
			this.variant = (aResult[4] && aResult[4].slice(1)) || null; // remove leading dash from capturing group
			this.variantSubtags = this.variant ? this.variant.split('-') : [];
			this.extension = (aResult[5] && aResult[5].slice(1)) || null; // remove leading dash from capturing group
			this.extensionSubtags = this.variant ? this.variant.split('-') : [];
			this.privateUse = aResult[6] || null;
			this.privateUseSubtags = this.privateUse ? this.privateUse.slice(2).split('-') : [];
			// convert subtags according to the BCP47 recommendations
			// - language: all lower case
			// - script: lower case with the first letter capitalized
			// - region: all upper case
			if ( this.language ) {
				this.language = this.language.toLowerCase();
			}
			if ( this.script ) {
				this.script = this.script.toLowerCase().replace(/^[a-z]/, function($) {
					return $.toUpperCase();
				});
			}
			if ( this.region ) {
				this.region = this.region.toUpperCase();
			}
			Object.freeze(this);
		}
Get the private use section as an array of tokens.

The leading singleton and the separating dashes are not part of the result.
If there is no private use section in the language tag, an empty array is returned.

@type {string[]}