let MARKUP_TYPE = "com.example.richtext.facet#markup"
let r = String.raw
let whitespace = r`\s\u00AD\u2060\u200A\u200B\u200C\u200D\u20e2`
let url = r`[-\w/%&=#+~@$*'!?,.;:]*`
let url_final = r`[-\w/%&=#+~@$*']`
let big_regex = RegExp([
r`\b(?https?://${url}${url_final}([(]${url}[)](${url}${url_final})?)?)(?\[)?`,
// alternative less strict link regex:
//r`\b(?(https?://|([a-zA-Z0-9-]+[.])+[a-zA-Z0-9-]{2,}(?=[/]))${url}${url_final}([(]${url}[)](${url}${url_final})?)?)(?\[)?`,
// urls must either have a scheme, or have a slash after the domain, to be considered.
// ie we will never link common "word.word" mistakes.
r`(?<=^|\s)[##](?(?!\uFE0F)[^${whitespace}]*[^\p{P}${whitespace}])`, // note: must filter out #123
r`(?<=^|\s|[(])@(?[-a-zA-Z0-9]+([.][-a-zA-Z0-9]+)+)\b`,
r`(?