RegEx/ANSI/24BitColor.regex.source.ps1
$myName = ($MyInvocation.MyCommand.ScriptBlock.File | Split-Path -Leaf) -replace '\.source', '' -replace '\.ps1', '.txt' $myRoot = $MyInvocation.MyCommand.ScriptBlock.File | Split-Path New-RegEx -Description "Matches an ANSI 24-bit color" -Modifier IgnoreCase -Not | New-RegEx -CharacterClass Escape -Comment 'An Escape' | New-RegEx -LiteralCharacter '[' -Comment 'Followed by a bracket' | New-RegEx -Atomic -Or @( New-RegEx -Pattern '38' -Name IsForegroundColor New-RegEx -Pattern '48' -Name IsBackgroundColor New-RegEx -Pattern '58' -Name IsUnderlineColor ) | New-RegEx -Pattern ';2;' | New-RegEx -Name Color -Pattern ( New-Regex -Name Red -Pattern '(?>[0-2][0-5][0-5]|[0-1]\d\d|\d{1,2})' -Comment 'Red is the first 0-255 value' | New-RegEx -Pattern ';' | New-Regex -Name Green -Pattern '(?>[0-2][0-5][0-5]|[0-1]\d\d|\d{1,2})' -Comment 'Green is the second 0-255 value' | New-RegEx -Pattern ';' | New-Regex -Name Blue -Pattern '(?>[0-2][0-5][0-5]|[0-1]\d\d|\d{1,2})' -Comment 'Blue is the third 0-255 value' | New-RegEx -Pattern 'm' ) | Set-Content -Path (Join-Path $myRoot $myName) |