// --- General ---

const RX_ARRAY_NOTATION = /\[(\d+)]/g;
const RX_BV_PREFIX = /^(BV?)/;
const RX_DIGITS = /^\d+$/;
const RX_EXTENSION = /^\..+/;
const RX_HASH = /^#/;
const RX_HASH_ID = /^#[A-Za-z]+[\w\-:.]*$/;
const RX_HTML_TAGS = /(<([^>]+)>)/gi;
const RX_HYPHENATE = /\B([A-Z])/g;
const RX_LOWER_UPPER = /([a-z])([A-Z])/g;
const RX_NUMBER = /^[0-9]*\.?[0-9]+$/;
const RX_PLUS = /\+/g;
const RX_REGEXP_REPLACE = /[-/\\^$*+?.()|[\]{}]/g;
const RX_SPACES = /[\s\uFEFF\xA0]+/g;
const RX_SPACE_SPLIT = /\s+/;
const RX_STAR = /\/\*$/;
const RX_START_SPACE_WORD = /(\s|^)(\w)/g;
const RX_TRIM_LEFT = /^\s+/;
const RX_TRIM_RIGHT = /\s+$/;
const RX_UNDERSCORE = /_/g;
const RX_UN_KEBAB = /-(\w)/g;

// --- Date ---

// Loose YYYY-MM-DD matching, ignores any appended time inforation
// Matches '1999-12-20', '1999-1-1', '1999-01-20T22:51:49.118Z', '1999-01-02 13:00:00'
const RX_DATE = /^\d+-\d\d?-\d\d?(?:\s|T|$)/;

// Used to split off the date parts of the YYYY-MM-DD string
const RX_DATE_SPLIT = /-|\s|T/;

// Time string RegEx (optional seconds)
const RX_TIME = /^([0-1]?[0-9]|2[0-3]):[0-5]?[0-9](:[0-5]?[0-9])?$/;

// --- URL ---

// HREFs must end with a hash followed by at least one non-hash character
const RX_HREF = /^.*(#[^#]+)$/;
const RX_ENCODED_COMMA = /%2C/g;
const RX_ENCODE_REVERSE = /[!'()*]/g;
const RX_QUERY_START = /^(\?|#|&)/;

// --- Aspect ---

const RX_ASPECT = /^\d+(\.\d*)?[/:]\d+(\.\d*)?$/;
const RX_ASPECT_SEPARATOR = /[/:]/;

// --- Grid ---

const RX_COL_CLASS = /^col-/;

// --- Icon ---

const RX_ICON_PREFIX = /^BIcon/;

// --- Locale ---

const RX_STRIP_LOCALE_MODS = /-u-.+/;

export { RX_ARRAY_NOTATION, RX_ASPECT, RX_ASPECT_SEPARATOR, RX_BV_PREFIX, RX_COL_CLASS, RX_DATE, RX_DATE_SPLIT, RX_DIGITS, RX_ENCODED_COMMA, RX_ENCODE_REVERSE, RX_EXTENSION, RX_HASH, RX_HASH_ID, RX_HREF, RX_HTML_TAGS, RX_HYPHENATE, RX_ICON_PREFIX, RX_LOWER_UPPER, RX_NUMBER, RX_PLUS, RX_QUERY_START, RX_REGEXP_REPLACE, RX_SPACES, RX_SPACE_SPLIT, RX_STAR, RX_START_SPACE_WORD, RX_STRIP_LOCALE_MODS, RX_TIME, RX_TRIM_LEFT, RX_TRIM_RIGHT, RX_UNDERSCORE, RX_UN_KEBAB };
