^[^<>]*(((?'Open'<)[^<>]*)+((?'Close-Open'>)[^<>]*)+)*(?(Open)(?!))$ ^ これとか.NETのマニアックな正規表現。{ One(.date(.numeric, locale: Locale(identifier: "en_US"), timeZone: .current)) } や { One(.url()) } っていう正規表現を超えたコンポーネントをRegex Builderだったら差し込めるところだけど、残念ながらFoundationに入ってるのでLinuxだと(今のところ?)動かない。