packages feed

skylighting-core 0.14.4 → 0.14.5

raw patch · 26 files changed

+4558/−1939 lines, 26 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

changelog.md view
@@ -1,5 +1,14 @@ # Revision history for skylighting and skylighting-core +## 0.14.5++  * Update xml syntax definitions for bash, cmake, commonlisp, isocpp,+    javascript-react, julia, latex, lua, markdown, modelines, nix, orgmode,+    php, python, rhtml, ruby, swift, xml, yaml, zig, zsh. Add odin (required+    by orgmode).++  * Update JSON syntax definition from upstream. (#203)+ ## 0.14.4    * Add `gdscript`, `typst`, `tlaplus` syntax (#184, #199).
skylighting-core.cabal view
@@ -1,5 +1,5 @@ name:                skylighting-core-version:             0.14.4+version:             0.14.5 synopsis:            syntax highlighting library description:         Skylighting is a syntax highlighting library.                      It derives its tokenizers from XML syntax
test/expected/abc.ruby.native view
@@ -1,10 +1,11 @@ [ [ ( NormalTok , "words " )-  , ( KeywordTok , "=" )-  , ( OtherTok , " %w(" )-  , ( StringTok , "A BaRK BOoK tREaT COmMOn SqUAD CoNfuSE" )+  , ( OperatorTok , "=" )+  , ( NormalTok , " " )+  , ( OtherTok , "%w(" )+  , ( VerbatimStringTok , "A BaRK BOoK tREaT COmMOn SqUAD CoNfuSE" )   , ( OtherTok , ")" )   , ( NormalTok , " " )-  , ( KeywordTok , "<<" )+  , ( OperatorTok , "<<" )   , ( NormalTok , " " )   , ( StringTok , "\"\"" )   ]@@ -14,36 +15,38 @@   , ( NormalTok , " " )   , ( ControlFlowTok , "do" )   , ( NormalTok , " " )-  , ( KeywordTok , "|" )+  , ( OperatorTok , "|" )   , ( NormalTok , "word" )-  , ( KeywordTok , "|" )+  , ( OperatorTok , "|" )   ] , [ ( NormalTok , "  blocks " )-  , ( KeywordTok , "=" )+  , ( OperatorTok , "=" )   , ( NormalTok , " " )   , ( StringTok     , "\"BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM\""     )   ] , [ ( NormalTok , "  res " )-  , ( KeywordTok , "=" )+  , ( OperatorTok , "=" )   , ( NormalTok , " word" )   , ( AttributeTok , ".each_char.all?" )-  , ( KeywordTok , "{|" )+  , ( OperatorTok , "{|" )   , ( NormalTok , "c" )-  , ( KeywordTok , "|" )+  , ( OperatorTok , "|" )   , ( NormalTok , " blocks" )   , ( AttributeTok , ".sub!" )   , ( NormalTok , "(" )-  , ( SpecialStringTok , "/\\w?" )+  , ( SpecialStringTok , "/" )+  , ( SpecialCharTok , "\\w" )+  , ( SpecialStringTok , "?" )   , ( SpecialCharTok , "#{" )   , ( NormalTok , "c" )-  , ( SpecialCharTok , "}" )-  , ( SpecialStringTok , "\\w?/i" )+  , ( SpecialCharTok , "}\\w" )+  , ( SpecialStringTok , "?/i" )   , ( NormalTok , ", " )   , ( StringTok , "\"\"" )   , ( NormalTok , ")" )-  , ( KeywordTok , "}" )+  , ( OperatorTok , "}" )   , ( NormalTok , "  " )   , ( CommentTok , "#regexps can be interpolated like strings" )   ]
xml/bash.xml view
@@ -56,17 +56,22 @@      <!ENTITY arithmetic_as_subshell "\(((?:[^`'&quot;()$]++|\$\{[^`'&quot;(){}$]+\}|\$(?=[^{`'&quot;()])|`[^`]*+`|\((?1)(?:[)]|(?=['&quot;])))++)(?:[)](?=$|[^)])|[&quot;'])"> -    <!ENTITY unary_operators  "-[abcdefghkprstuwxGLNOSovRnz]&eos;">-    <!ENTITY binary_operators "(?:-(?:e[fq]|[nolg]t|[nlg]e)|==?|!=)&eos;">+    <!ENTITY unary_operators  "-[abcdefghkprstuwxGLNOSovRnz](?=\\?$|[ &tab;])">+    <!ENTITY binary_operators "(?:-(?:e[fq]|[nolg]t|[nlg]e)|==?|!=)(?=\\?$|[ &tab;])">      <!ENTITY dblbracket_close "\]\](?=($|[ &tab;;|&amp;)]))">      <!ENTITY weakDeliminatorSymbols "^&#37;#[]$.{}:-/"> ]> +<!--+https://git.savannah.gnu.org/cgit/bash.git/tree/NEWS+current: bash-5.2+-->+ <language     name="Bash"-    version="51"+    version="53"     kateversion="5.79"     section="Scripts"     extensions="*.sh;*.bash;*.ebuild;*.eclass;*.exlib;*.exheres-0;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD;APKBUILD"@@ -872,6 +877,7 @@        <!-- FindPathThenPopInAlternateValue consumes path in ${xx:here}-->       <context attribute="Normal Text" lineEndContext="#pop" name="FindPathThenPopInAlternateValue">+        <DetectChar attribute="Variable" char="&amp;"/>         <Detect2Chars context="#pop!PathThenPopInAlternateValue" char="?" char1="(" lookAhead="1"/>         <Detect2Chars context="#pop!PathThenPopInAlternateValue" char="*" char1="(" lookAhead="1"/>         <Detect2Chars context="#pop!PathThenPopInAlternateValue" char="+" char1="(" lookAhead="1"/>@@ -1239,12 +1245,12 @@         <IncludeRules context="Start"/>       </context> -      <!-- StringEsc eats till ', but escaping many characters -->+      <!-- StringEsc eats till ', but escaping many characters in $'...' -->       <context attribute="String SingleQ" lineEndContext="#stay" name="StringEsc">         <DetectSpaces attribute="String SingleQ"/>         <DetectIdentifier attribute="String SingleQ"/>         <DetectChar attribute="String SingleQ" context="#pop" char="'"/>-        <RegExpr attribute="String Escape" context="#stay" String="\\(?:[abefnrtv\\']|[0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)"/>+        <RegExpr attribute="String Escape" context="#stay" String="\\(?:[abeEfnrtv\\'&quot;?]|[0-7]{1,3}|x[A-Fa-f0-9]{1,2}|u[A-Fa-f0-9]{1,4}|U[A-Fa-f0-9]{1,8}|c.)"/>       </context>        <context attribute="Normal Text" lineEndContext="#stay" name="FindWord">@@ -1368,7 +1374,7 @@       <!-- called as soon as ${xxx@ is encoutered -->       <context attribute="Normal Text" lineEndContext="#stay" name="VarTransformation" fallthroughContext="#pop!VarError">         <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>-        <AnyChar attribute="Parameter Expansion" context="#stay" String="UuLQEPAKa"/>+        <AnyChar attribute="Parameter Expansion" context="#stay" String="UuLQEPAKak"/>       </context>        <context attribute="Escape" lineEndContext="#pop" name="BraceExpansion">@@ -1495,13 +1501,19 @@         <IncludeRules context="FindNormalText"/>       </context> -      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracketParam2" fallthroughContext="ExprBracketValue">+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracketParam2" fallthroughContext="#pop!ExprBracketParam2_Value">+        <LineContinue attribute="Escape" context="SkipSpaces"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracketParam2_Value" fallthroughContext="ExprBracketValue">         <DetectSpaces attribute="Normal Text" context="#pop!ExprBracketParam3"/>         <AnyChar context="TestMaybeBinary" String="-=!" lookAhead="1"/>         <IncludeRules context="FindExprBracketEnd"/>       </context> -      <context attribute="Normal Text" lineEndContext="ExprBracketFinal" name="ExprBracketParam3" fallthroughContext="ExprBracketValue">+      <context attribute="Normal Text" lineEndContext="ExprBracketFinal" name="ExprBracketParam3" fallthroughContext="#pop!ExprBracketParam3_Value">+        <LineContinue attribute="Escape" context="SkipSpaces"/>+      </context>+      <context attribute="Normal Text" lineEndContext="ExprBracketFinal" name="ExprBracketParam3_Value" fallthroughContext="ExprBracketValue">         <DetectSpaces attribute="Normal Text" context="#pop!ExprBracketFinal"/>         <IncludeRules context="FindExprBracketEnd"/>       </context>@@ -1525,8 +1537,12 @@         <RegExpr attribute="Expression" context="#pop" String="&binary_operators;"/>       </context> +      <context attribute="Normal Text" lineEndContext="#pop" name="SkipSpaces" fallthroughContext="#pop">+        <DetectSpaces context="#pop"/>+      </context> -      <!-- ExprDblBracket consumes an expression till ]] -->++      <!-- ExprDblBracket consumes an expression till ]] in [[ ... ]] -->       <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracket" fallthroughContext="#pop!ExprDblBracketNot">         <DetectSpaces attribute="Normal Text" context="#stay"/>         <DetectChar attribute="Comment" context="Comment" char="#"/>@@ -1641,7 +1657,10 @@         <DetectChar attribute="Operator" context="ExprDblBracketValuePattern" char=")" endRegion="expression" beginRegion="subshell"/>       </context> -      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam2" fallthroughContext="ExprDblBracketValuePattern">+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam2" fallthroughContext="#pop!ExprDblBracketParam2_Value">+        <LineContinue attribute="Escape" context="SkipSpaces"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam2_Value" fallthroughContext="ExprDblBracketValuePattern">         <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketParam3"/>         <AnyChar context="TestMaybeBinary2" String="-=!" lookAhead="1"/>         <AnyChar attribute="Expression" context="#pop!ExprDblBracketParam3Spe" String="&lt;>"/>@@ -1657,7 +1676,10 @@         <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketParam3"/>       </context> -      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam3" fallthroughContext="ExprDblBracketValuePattern">+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam3" fallthroughContext="#pop!ExprDblBracketParam3_Value">+        <LineContinue attribute="Escape" context="SkipSpaces"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam3_Value" fallthroughContext="ExprDblBracketValuePattern">         <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketFinal"/>         <IncludeRules context="FindExprDblBracketEnd"/>         <AnyChar attribute="Error" context="#stay" String="&lt;>"/>@@ -1773,7 +1795,7 @@         <DetectChar attribute="Error" context="#pop" char="]"/>       </context> -      <!-- SubShell consumes shell input till ) -->+      <!-- SubShell consumes shell input till ) in (...) -->       <context attribute="Normal Text" lineEndContext="#stay" name="SubShell" fallthroughContext="Command">         <DetectChar attribute="Keyword" context="#pop" char=")" endRegion="subshell"/>         <IncludeRules context="Start"/>@@ -1788,7 +1810,7 @@         <IncludeRules context="NormalOption"/>       </context> -      <!-- AssignArray consumes everything till ), marking assignments -->+      <!-- AssignArray consumes everything till ) in var=(...), marking assignments -->       <context attribute="Normal Text" lineEndContext="#stay" name="AssignArray" fallthroughContext="NormalOption">         <DetectSpaces attribute="Normal Text" context="#stay"/>         <DetectChar attribute="Comment" context="Comment" char="#"/>@@ -1807,7 +1829,7 @@         <IncludeRules context="Start"/>       </context> -      <!-- Subscript consumes anything till ], marks as Variable -->+      <!-- Subscript consumes anything till ] in [ ... ], marks as Variable -->       <context attribute="Normal Text" lineEndContext="#stay" name="Subscript" fallthroughContext="#pop!Subscript2">         <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="]"/>         <AnyChar attribute="Decimal" context="#stay" String="0123456789"/>
xml/cmake.xml view
@@ -18,14 +18,13 @@  -->  <!-- ***** THIS FILE WAS GENERATED BY A SCRIPT - DO NOT EDIT *****-  cd data/generators-  # increase version of cmake.xml.tpl then-  ./generate-cmake-syntax.py cmake.yaml > ../syntax/cmake.xml+  $ cd data/generators+  $ ./generate-cmake-syntax.py cmake.yaml > ../syntax/cmake.xml -->  <language     name="CMake"-    version="50"+    version="53"     kateversion="5.62"     section="Other"     extensions="CMakeLists.txt;*.cmake;*.cmake.in"@@ -44,6 +43,7 @@         <item>cmake_minimum_required</item>         <item>cmake_parse_arguments</item>         <item>cmake_path</item>+        <item>cmake_pkg_config</item>         <item>cmake_policy</item>         <item>configure_file</item>         <item>continue</item>@@ -214,6 +214,7 @@       <item>DEFER</item>       <item>DIRECTORY</item>       <item>EVAL</item>+      <item>EXIT</item>       <item>GET_CALL</item>       <item>GET_CALL_IDS</item>       <item>GET_MESSAGE_LOG_LEVEL</item>@@ -277,6 +278,31 @@       <item>TO_CMAKE_PATH_LIST</item>       <item>TO_NATIVE_PATH_LIST</item>     </list>+    <list name="cmake_pkg_config_nargs">+      <item>ALLOW_SYSTEM_INCLUDES</item>+      <item>ALLOW_SYSTEM_LIBS</item>+      <item>DISABLE_UNINSTALLED</item>+      <item>ENV_MODE</item>+      <item>EXACT</item>+      <item>EXTRACT</item>+      <item>PC_LIBDIR</item>+      <item>PC_PATH</item>+      <item>PC_SYSROOT_DIR</item>+      <item>QUIET</item>+      <item>REQUIRED</item>+      <item>STRICTNESS</item>+      <item>SYSTEM_INCLUDE_DIRS</item>+      <item>SYSTEM_LIBRARY_DIRS</item>+      <item>TOP_BUILD_DIR</item>+    </list>+    <list name="cmake_pkg_config_sargs">+      <item>BEST_EFFORT</item>+      <item>FDO</item>+      <item>IGNORE</item>+      <item>PERMISSIVE</item>+      <item>PKGCONF</item>+      <item>STRICT</item>+    </list>     <list name="cmake_policy_nargs">       <item>GET</item>       <item>POP</item>@@ -315,8 +341,11 @@       <item>IN_LIST</item>       <item>IS_ABSOLUTE</item>       <item>IS_DIRECTORY</item>+      <item>IS_EXECUTABLE</item>       <item>IS_NEWER_THAN</item>+      <item>IS_READABLE</item>       <item>IS_SYMLINK</item>+      <item>IS_WRITABLE</item>       <item>LESS</item>       <item>LESS_EQUAL</item>       <item>MATCHES</item>@@ -480,6 +509,7 @@       <item>TIMESTAMP</item>       <item>TLS_CAINFO</item>       <item>TLS_VERIFY</item>+      <item>TLS_VERSION</item>       <item>TOUCH</item>       <item>TOUCH_NOCREATE</item>       <item>TO_CMAKE_PATH</item>@@ -490,6 +520,7 @@       <item>USE_SOURCE_PERMISSIONS</item>       <item>UTC</item>       <item>VERBOSE</item>+      <item>WORKING_DIRECTORY</item>       <item>WRITE</item>     </list>     <list name="file_sargs">@@ -848,6 +879,7 @@       <item>APPEND</item>       <item>ARGS</item>       <item>BYPRODUCTS</item>+      <item>CODEGEN</item>       <item>COMMAND</item>       <item>COMMAND_EXPAND_LISTS</item>       <item>COMMENT</item>@@ -970,11 +1002,17 @@     <list name="export_nargs">       <item>ANDROID_MK</item>       <item>APPEND</item>+      <item>AUTO</item>+      <item>ENABLED</item>       <item>EXPORT</item>       <item>EXPORT_LINK_INTERFACE_LIBRARIES</item>       <item>FILE</item>       <item>NAMESPACE</item>+      <item>PACKAGE_DEPENDENCY</item>+      <item>SETUP</item>+      <item>TARGET</item>       <item>TARGETS</item>+      <item>XCFRAMEWORK_LOCATION</item>     </list>     <list name="get_source_file_property_nargs">       <item>DIRECTORY</item>@@ -1047,14 +1085,28 @@       <item>USE_SOURCE_PERMISSIONS</item>     </list>     <list name="install_sargs">+      <item>BIN</item>+      <item>DATA</item>+      <item>DOC</item>       <item>GROUP_EXECUTE</item>       <item>GROUP_READ</item>       <item>GROUP_WRITE</item>+      <item>INCLUDE</item>+      <item>INFO</item>+      <item>LIB</item>+      <item>LIBEXEC</item>+      <item>LOCALE</item>+      <item>LOCALSTATE</item>+      <item>MAN</item>       <item>OWNER_EXECUTE</item>       <item>OWNER_READ</item>       <item>OWNER_WRITE</item>+      <item>RUNSTATE</item>+      <item>SBIN</item>       <item>SETGID</item>       <item>SETUID</item>+      <item>SHAREDSTATE</item>+      <item>SYSCONF</item>       <item>WORLD_EXECUTE</item>       <item>WORLD_READ</item>       <item>WORLD_WRITE</item>@@ -1358,8 +1410,10 @@       <item>EXCLUDE_FIXTURE</item>       <item>EXCLUDE_FIXTURE_CLEANUP</item>       <item>EXCLUDE_FIXTURE_SETUP</item>+      <item>EXCLUDE_FROM_FILE</item>       <item>EXCLUDE_LABEL</item>       <item>INCLUDE</item>+      <item>INCLUDE_FROM_FILE</item>       <item>INCLUDE_LABEL</item>       <item>PARALLEL_LEVEL</item>       <item>QUIET</item>@@ -1468,6 +1522,28 @@       <item>SameMajorVersion</item>       <item>SameMinorVersion</item>     </list>+    <list name="generate_apple_platform_selection_file_nargs">+      <item>INSTALL_DESTINATION</item>+      <item>INSTALL_PREFIX</item>+      <item>IOS_INCLUDE_FILE</item>+      <item>IOS_SIMULATOR_INCLUDE_FILE</item>+      <item>MACOS_INCLUDE_FILE</item>+      <item>TVOS_INCLUDE_FILE</item>+      <item>TVOS_SIMULATOR_INCLUDE_FILE</item>+      <item>VISIONOS_INCLUDE_FILE</item>+      <item>VISIONOS_SIMULATOR_INCLUDE_FILE</item>+      <item>WATCHOS_INCLUDE_FILE</item>+      <item>WATCHOS_SIMULATOR_INCLUDE_FILE</item>+    </list>+    <list name="generate_apple_architecture_selection_file_nargs">+      <item>ERROR_VARIABLE</item>+      <item>INSTALL_DESTINATION</item>+      <item>INSTALL_PREFIX</item>+      <item>SINGLE_ARCHITECTURES</item>+      <item>SINGLE_ARCHITECTURE_INCLUDE_FILES</item>+      <item>UNIVERSAL_ARCHITECTURES</item>+      <item>UNIVERSAL_INCLUDE_FILE</item>+    </list>     <list name="cmake_print_properties_nargs">       <item>CACHE_ENTRIES</item>       <item>DIRECTORIES</item>@@ -1667,6 +1743,7 @@       <item>TIMEOUT</item>       <item>TLS_CAINFO</item>       <item>TLS_VERIFY</item>+      <item>TLS_VERSION</item>       <item>TMP_DIR</item>       <item>UPDATE_COMMAND</item>       <item>UPDATE_DISCONNECTED</item>@@ -1878,6 +1955,7 @@       <item>WORKING_DIRECTORY</item>     </list>     <list name="gtest_discover_tests_nargs">+      <item>DISCOVERY_EXTRA_ARGS</item>       <item>DISCOVERY_MODE</item>       <item>DISCOVERY_TIMEOUT</item>       <item>EXTRA_ARGS</item>@@ -2123,7 +2201,9 @@       <item>CABLE_TCL_LIBRARY</item>       <item>CMAKE_ABSOLUTE_DESTINATION_FILES</item>       <item>CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY</item>+      <item>CMAKE_ADSP_ROOT</item>       <item>CMAKE_AIX_EXPORT_ALL_SYMBOLS</item>+      <item>CMAKE_AIX_SHARED_LIBRARY_ARCHIVE</item>       <item>CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS</item>       <item>CMAKE_ANDROID_API</item>       <item>CMAKE_ANDROID_API_MIN</item>@@ -2165,7 +2245,6 @@       <item>CMAKE_AUTOMOC_EXECUTABLE</item>       <item>CMAKE_AUTOMOC_MOC_OPTIONS</item>       <item>CMAKE_AUTOMOC_PATH_PREFIX</item>-      <item>CMAKE_AUTOMOC_RELAXED_MODE</item>       <item>CMAKE_AUTORCC</item>       <item>CMAKE_AUTORCC_EXECUTABLE</item>       <item>CMAKE_AUTORCC_OPTIONS</item>@@ -2173,7 +2252,6 @@       <item>CMAKE_AUTOUIC_EXECUTABLE</item>       <item>CMAKE_AUTOUIC_OPTIONS</item>       <item>CMAKE_AUTOUIC_SEARCH_PATHS</item>-      <item>CMAKE_BACKWARDS_COMPATIBILITY</item>       <item>CMAKE_BINARY_DIR</item>       <item>CMAKE_BUILD_RPATH</item>       <item>CMAKE_BUILD_RPATH_USE_ORIGIN</item>@@ -2195,9 +2273,6 @@       <item>CMAKE_COLOR_MAKEFILE</item>       <item>CMAKE_COMMAND</item>       <item>CMAKE_COMPILER_2005</item>-      <item>CMAKE_COMPILER_IS_GNUCC</item>-      <item>CMAKE_COMPILER_IS_GNUCXX</item>-      <item>CMAKE_COMPILER_IS_GNUG77</item>       <item>CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY</item>       <item>CMAKE_COMPILE_WARNING_AS_ERROR</item>       <item>CMAKE_CONFIGURATION_TYPES</item>@@ -2209,7 +2284,6 @@       <item>CMAKE_CUDA_ARCHITECTURES</item>       <item>CMAKE_CUDA_COMPILE_FEATURES</item>       <item>CMAKE_CUDA_EXTENSIONS</item>-      <item>CMAKE_CUDA_HOST_COMPILER</item>       <item>CMAKE_CUDA_LINK_NO_PIE_SUPPORTED</item>       <item>CMAKE_CUDA_LINK_PIE_SUPPORTED</item>       <item>CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS</item>@@ -2265,10 +2339,10 @@       <item>CMAKE_EXECUTE_PROCESS_COMMAND_ECHO</item>       <item>CMAKE_EXE_LINKER_FLAGS</item>       <item>CMAKE_EXE_LINKER_FLAGS_INIT</item>+      <item>CMAKE_EXPORT_BUILD_DATABASE</item>       <item>CMAKE_EXPORT_COMPILE_COMMANDS</item>       <item>CMAKE_EXPORT_NO_PACKAGE_REGISTRY</item>       <item>CMAKE_EXPORT_PACKAGE_REGISTRY</item>-      <item>CMAKE_EXTRA_GENERATOR</item>       <item>CMAKE_EXTRA_INCLUDE_FILES</item>       <item>CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES</item>       <item>CMAKE_FIND_APPBUNDLE</item>@@ -2280,8 +2354,6 @@       <item>CMAKE_FIND_LIBRARY_SUFFIXES</item>       <item>CMAKE_FIND_NO_INSTALL_PREFIX</item>       <item>CMAKE_FIND_PACKAGE_NAME</item>-      <item>CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY</item>-      <item>CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY</item>       <item>CMAKE_FIND_PACKAGE_PREFER_CONFIG</item>       <item>CMAKE_FIND_PACKAGE_REDIRECTS_DIR</item>       <item>CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS</item>@@ -2339,6 +2411,7 @@       <item>CMAKE_HIP_STANDARD_REQUIRED</item>       <item>CMAKE_HOST_APPLE</item>       <item>CMAKE_HOST_BSD</item>+      <item>CMAKE_HOST_EXECUTABLE_SUFFIX</item>       <item>CMAKE_HOST_LINUX</item>       <item>CMAKE_HOST_SOLARIS</item>       <item>CMAKE_HOST_SYSTEM</item>@@ -2424,12 +2497,14 @@       <item>CMAKE_LIBRARY_OUTPUT_DIRECTORY</item>       <item>CMAKE_LIBRARY_PATH</item>       <item>CMAKE_LIBRARY_PATH_FLAG</item>+      <item>CMAKE_LINKER_TYPE</item>       <item>CMAKE_LINK_DEF_FILE_FLAG</item>       <item>CMAKE_LINK_DEPENDS_NO_SHARED</item>       <item>CMAKE_LINK_DEPENDS_USE_LINKER</item>       <item>CMAKE_LINK_DIRECTORIES_BEFORE</item>       <item>CMAKE_LINK_INTERFACE_LIBRARIES</item>       <item>CMAKE_LINK_LIBRARIES_ONLY_TARGETS</item>+      <item>CMAKE_LINK_LIBRARIES_STRATEGY</item>       <item>CMAKE_LINK_LIBRARY_FILE_FLAG</item>       <item>CMAKE_LINK_LIBRARY_FLAG</item>       <item>CMAKE_LINK_LIBRARY_SUFFIX</item>@@ -2485,6 +2560,28 @@       <item>CMAKE_PCH_INSTANTIATE_TEMPLATES</item>       <item>CMAKE_PCH_WARN_INVALID</item>       <item>CMAKE_PDB_OUTPUT_DIRECTORY</item>+      <item>CMAKE_PKG_CONFIG_ALLOW_SYS_INCLUDES</item>+      <item>CMAKE_PKG_CONFIG_ALLOW_SYS_LIBS</item>+      <item>CMAKE_PKG_CONFIG_CFLAGS</item>+      <item>CMAKE_PKG_CONFIG_COMPILE_OPTIONS</item>+      <item>CMAKE_PKG_CONFIG_CONFLICTS</item>+      <item>CMAKE_PKG_CONFIG_DESCRIPTION</item>+      <item>CMAKE_PKG_CONFIG_DISABLE_UNINSTALLED</item>+      <item>CMAKE_PKG_CONFIG_INCLUDES</item>+      <item>CMAKE_PKG_CONFIG_LIBDIRS</item>+      <item>CMAKE_PKG_CONFIG_LIBNAMES</item>+      <item>CMAKE_PKG_CONFIG_LIBS</item>+      <item>CMAKE_PKG_CONFIG_LINK_OPTIONS</item>+      <item>CMAKE_PKG_CONFIG_NAME</item>+      <item>CMAKE_PKG_CONFIG_PC_LIB_DIRS</item>+      <item>CMAKE_PKG_CONFIG_PC_PATH</item>+      <item>CMAKE_PKG_CONFIG_PKGCONF_INCLUDES</item>+      <item>CMAKE_PKG_CONFIG_PROVIDES</item>+      <item>CMAKE_PKG_CONFIG_REQUIRES</item>+      <item>CMAKE_PKG_CONFIG_SYSROOT_DIR</item>+      <item>CMAKE_PKG_CONFIG_SYS_INCLUDE_DIRS</item>+      <item>CMAKE_PKG_CONFIG_SYS_LIB_DIRS</item>+      <item>CMAKE_PKG_CONFIG_TOP_BUILD_DIR</item>       <item>CMAKE_PLATFORM_NO_VERSIONED_SONAME</item>       <item>CMAKE_POSITION_INDEPENDENT_CODE</item>       <item>CMAKE_PREFIX_PATH</item>@@ -2505,6 +2602,7 @@       <item>CMAKE_REQUIRED_FLAGS</item>       <item>CMAKE_REQUIRED_INCLUDES</item>       <item>CMAKE_REQUIRED_LIBRARIES</item>+      <item>CMAKE_REQUIRED_LINK_DIRECTORIES</item>       <item>CMAKE_REQUIRED_LINK_OPTIONS</item>       <item>CMAKE_REQUIRED_QUIET</item>       <item>CMAKE_ROOT</item>@@ -2523,6 +2621,7 @@       <item>CMAKE_SKIP_INSTALL_RPATH</item>       <item>CMAKE_SKIP_INSTALL_RULES</item>       <item>CMAKE_SKIP_RPATH</item>+      <item>CMAKE_SKIP_TEST_ALL_DEPENDENCY</item>       <item>CMAKE_SOURCE_DIR</item>       <item>CMAKE_STAGING_PREFIX</item>       <item>CMAKE_STATIC_LIBRARY_PREFIX</item>@@ -2549,9 +2648,12 @@       <item>CMAKE_SYSTEM_PROCESSOR</item>       <item>CMAKE_SYSTEM_PROGRAM_PATH</item>       <item>CMAKE_SYSTEM_VERSION</item>+      <item>CMAKE_Swift_COMPILATION_MODE</item>       <item>CMAKE_Swift_LANGUAGE_VERSION</item>       <item>CMAKE_Swift_MODULE_DIRECTORY</item>+      <item>CMAKE_Swift_NUM_THREADS</item>       <item>CMAKE_TASKING_TOOLSET</item>+      <item>CMAKE_TEST_LAUNCHER</item>       <item>CMAKE_THREAD_LIBS_INIT</item>       <item>CMAKE_THREAD_PREFER_PTHREAD</item>       <item>CMAKE_TOOLCHAIN_FILE</item>@@ -2564,7 +2666,6 @@       <item>CMAKE_UNITY_BUILD_BATCH_SIZE</item>       <item>CMAKE_USER_MAKE_RULES_OVERRIDE</item>       <item>CMAKE_USE_PTHREADS_INIT</item>-      <item>CMAKE_USE_RELATIVE_PATHS</item>       <item>CMAKE_USE_SPROC_INIT</item>       <item>CMAKE_USE_WIN32_THREADS_INIT</item>       <item>CMAKE_VERBOSE_MAKEFILE</item>@@ -2600,6 +2701,7 @@       <item>CMAKE_VS_TARGET_FRAMEWORK_IDENTIFIER</item>       <item>CMAKE_VS_TARGET_FRAMEWORK_TARGETS_VERSION</item>       <item>CMAKE_VS_TARGET_FRAMEWORK_VERSION</item>+      <item>CMAKE_VS_USE_DEBUG_LIBRARIES</item>       <item>CMAKE_VS_VERSION_BUILD_NUMBER</item>       <item>CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION</item>       <item>CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION</item>@@ -2687,6 +2789,7 @@       <item>CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY</item>       <item>CPACK_DEBIAN_PACKAGE_HOMEPAGE</item>       <item>CPACK_DEBIAN_PACKAGE_MAINTAINER</item>+      <item>CPACK_DEBIAN_PACKAGE_MULTIARCH</item>       <item>CPACK_DEBIAN_PACKAGE_NAME</item>       <item>CPACK_DEBIAN_PACKAGE_PREDEPENDS</item>       <item>CPACK_DEBIAN_PACKAGE_PRIORITY</item>@@ -2749,6 +2852,7 @@       <item>CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME</item>       <item>CPACK_IFW_PACKAGE_NAME</item>       <item>CPACK_IFW_PACKAGE_PRODUCT_IMAGES</item>+      <item>CPACK_IFW_PACKAGE_PRODUCT_IMAGE_URLS</item>       <item>CPACK_IFW_PACKAGE_PUBLISHER</item>       <item>CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR</item>       <item>CPACK_IFW_PACKAGE_RESOURCES</item>@@ -2852,10 +2956,15 @@       <item>CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME</item>       <item>CPACK_NUGET_PACKAGE_NAME</item>       <item>CPACK_NUGET_PACKAGE_OWNERS</item>+      <item>CPACK_NUGET_PACKAGE_README</item>       <item>CPACK_NUGET_PACKAGE_RELEASE_NOTES</item>+      <item>CPACK_NUGET_PACKAGE_REPOSITORY_BRANCH</item>+      <item>CPACK_NUGET_PACKAGE_REPOSITORY_COMMIT</item>+      <item>CPACK_NUGET_PACKAGE_REPOSITORY_TYPE</item>+      <item>CPACK_NUGET_PACKAGE_REPOSITORY_URL</item>       <item>CPACK_NUGET_PACKAGE_TAGS</item>+      <item>CPACK_NUGET_PACKAGE_TFMS</item>       <item>CPACK_NUGET_PACKAGE_TITLE</item>-      <item>CPACK_NUGET_PACKAGE_VERSION</item>       <item>CPACK_OBJCOPY_EXECUTABLE</item>       <item>CPACK_OBJDUMP_EXECUTABLE</item>       <item>CPACK_OUTPUT_CONFIG_FILE</item>@@ -2987,6 +3096,7 @@       <item>CPACK_WIX_EXTENSIONS</item>       <item>CPACK_WIX_EXTRA_OBJECTS</item>       <item>CPACK_WIX_EXTRA_SOURCES</item>+      <item>CPACK_WIX_INSTALL_SCOPE</item>       <item>CPACK_WIX_LICENSE_RTF</item>       <item>CPACK_WIX_PATCH_FILE</item>       <item>CPACK_WIX_PRODUCT_GUID</item>@@ -3033,7 +3143,6 @@       <item>CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION</item>       <item>CTEST_CUSTOM_WARNING_EXCEPTION</item>       <item>CTEST_CUSTOM_WARNING_MATCH</item>-      <item>CTEST_CVS_CHECKOUT</item>       <item>CTEST_CVS_COMMAND</item>       <item>CTEST_CVS_UPDATE_OPTIONS</item>       <item>CTEST_DROP_LOCATION</item>@@ -3062,7 +3171,6 @@       <item>CTEST_P4_UPDATE_OPTIONS</item>       <item>CTEST_RESOURCE_SPEC_FILE</item>       <item>CTEST_RUN_CURRENT_SCRIPT</item>-      <item>CTEST_SCP_COMMAND</item>       <item>CTEST_SITE</item>       <item>CTEST_SOURCE_DIRECTORY</item>       <item>CTEST_SUBMIT_INACTIVITY_TIMEOUT</item>@@ -3072,7 +3180,8 @@       <item>CTEST_SVN_UPDATE_OPTIONS</item>       <item>CTEST_TEST_LOAD</item>       <item>CTEST_TEST_TIMEOUT</item>-      <item>CTEST_TRIGGER_SITE</item>+      <item>CTEST_TLS_VERIFY</item>+      <item>CTEST_TLS_VERSION</item>       <item>CTEST_UPDATE_COMMAND</item>       <item>CTEST_UPDATE_OPTIONS</item>       <item>CTEST_UPDATE_VERSION_ONLY</item>@@ -3297,15 +3406,6 @@       <item>MPI_SKIP_GUESSING</item>       <item>MPI_SUBARRAYS_SUPPORTED</item>       <item>MSVC</item>-      <item>MSVC10</item>-      <item>MSVC11</item>-      <item>MSVC12</item>-      <item>MSVC14</item>-      <item>MSVC60</item>-      <item>MSVC70</item>-      <item>MSVC71</item>-      <item>MSVC80</item>-      <item>MSVC90</item>       <item>MSVC_IDE</item>       <item>MSVC_TOOLSET_VERSION</item>       <item>MSVC_VERSION</item>@@ -3337,6 +3437,7 @@       <item>OpenGL_GL_PREFERENCE</item>       <item>OpenMP_Fortran_HAVE_OMPLIB_HEADER</item>       <item>OpenMP_Fortran_HAVE_OMPLIB_MODULE</item>+      <item>OpenMP_RUNTIME_MSVC</item>       <item>PACKAGE_FIND_NAME</item>       <item>PACKAGE_FIND_VERSION_COMPLETE</item>       <item>PACKAGE_FIND_VERSION_COUNT</item>@@ -3409,8 +3510,10 @@       <item>Python2_ARTIFACTS_INTERACTIVE</item>       <item>Python2_COMPILER</item>       <item>Python2_COMPILER_ID</item>+      <item>Python2_DEBUG_POSTFIX</item>       <item>Python2_DOTNET_LAUNCHER</item>       <item>Python2_EXECUTABLE</item>+      <item>Python2_EXECUTABLE_DEBUG</item>       <item>Python2_FIND_ABI</item>       <item>Python2_FIND_FRAMEWORK</item>       <item>Python2_FIND_IMPLEMENTATIONS</item>@@ -3418,6 +3521,7 @@       <item>Python2_FIND_STRATEGY</item>       <item>Python2_FIND_UNVERSIONED_NAMES</item>       <item>Python2_FIND_VIRTUALENV</item>+      <item>Python2_INTERPRETER</item>       <item>Python2_INTERPRETER_ID</item>       <item>Python2_LINK_OPTIONS</item>       <item>Python2_SITEARCH</item>@@ -3429,8 +3533,10 @@       <item>Python3_ARTIFACTS_INTERACTIVE</item>       <item>Python3_COMPILER</item>       <item>Python3_COMPILER_ID</item>+      <item>Python3_DEBUG_POSTFIX</item>       <item>Python3_DOTNET_LAUNCHER</item>       <item>Python3_EXECUTABLE</item>+      <item>Python3_EXECUTABLE_DEBUG</item>       <item>Python3_FIND_ABI</item>       <item>Python3_FIND_FRAMEWORK</item>       <item>Python3_FIND_IMPLEMENTATIONS</item>@@ -3438,19 +3544,23 @@       <item>Python3_FIND_STRATEGY</item>       <item>Python3_FIND_UNVERSIONED_NAMES</item>       <item>Python3_FIND_VIRTUALENV</item>+      <item>Python3_INTERPRETER</item>       <item>Python3_INTERPRETER_ID</item>       <item>Python3_LINK_OPTIONS</item>       <item>Python3_SITEARCH</item>       <item>Python3_SITELIB</item>       <item>Python3_SOABI</item>+      <item>Python3_SOSABI</item>       <item>Python3_STDARCH</item>       <item>Python3_STDLIB</item>       <item>Python3_USE_STATIC_LIBS</item>       <item>Python_ARTIFACTS_INTERACTIVE</item>       <item>Python_COMPILER</item>       <item>Python_COMPILER_ID</item>+      <item>Python_DEBUG_POSTFIX</item>       <item>Python_DOTNET_LAUNCHER</item>       <item>Python_EXECUTABLE</item>+      <item>Python_EXECUTABLE_DEBUG</item>       <item>Python_FIND_ABI</item>       <item>Python_FIND_FRAMEWORK</item>       <item>Python_FIND_IMPLEMENTATIONS</item>@@ -3458,11 +3568,13 @@       <item>Python_FIND_STRATEGY</item>       <item>Python_FIND_UNVERSIONED_NAMES</item>       <item>Python_FIND_VIRTUALENV</item>+      <item>Python_INTERPRETER</item>       <item>Python_INTERPRETER_ID</item>       <item>Python_LINK_OPTIONS</item>       <item>Python_SITEARCH</item>       <item>Python_SITELIB</item>       <item>Python_SOABI</item>+      <item>Python_SOSABI</item>       <item>Python_STDARCH</item>       <item>Python_STDLIB</item>       <item>Python_USE_STATIC_LIBS</item>@@ -3529,8 +3641,16 @@     </list>      <list name="deprecated-or-internal-variables">+      <item>CMAKE_AUTOMOC_RELAXED_MODE</item>+      <item>CMAKE_BACKWARDS_COMPATIBILITY</item>+      <item>CMAKE_COMPILER_IS_GNUCC</item>+      <item>CMAKE_COMPILER_IS_GNUCXX</item>+      <item>CMAKE_COMPILER_IS_GNUG77</item>       <item>CMAKE_ENABLE_EXPORTS</item>+      <item>CMAKE_EXTRA_GENERATOR</item>       <item>CMAKE_FILES_DIRECTORY</item>+      <item>CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY</item>+      <item>CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY</item>       <item>CMAKE_HOME_DIRECTORY</item>       <item>CMAKE_INTERNAL_PLATFORM_ABI</item>       <item>CMAKE_IOS_INSTALL_COMBINED</item>@@ -3539,6 +3659,7 @@       <item>CMAKE_SUPPRESS_DEVELOPER_ERRORS</item>       <item>CMAKE_SUPPRESS_DEVELOPER_WARNINGS</item>       <item>CMAKE_SYSTEM_ARCH</item>+      <item>CMAKE_USE_RELATIVE_PATHS</item>       <item>CMAKE_VS_INTEL_Fortran_PROJECT_VERSION</item>       <item>CPACK_INSTALL_PREFIX</item>       <item>CPACK_INSTALL_SCRIPT</item>@@ -3546,6 +3667,18 @@       <item>CPACK_PACKAGE_RELOCATABLE</item>       <item>CPACK_TEMPORARY_DIRECTORY</item>       <item>CPACK_TOPLEVEL_DIRECTORY</item>+      <item>CTEST_CVS_CHECKOUT</item>+      <item>CTEST_SCP_COMMAND</item>+      <item>CTEST_TRIGGER_SITE</item>+      <item>MSVC10</item>+      <item>MSVC11</item>+      <item>MSVC12</item>+      <item>MSVC14</item>+      <item>MSVC60</item>+      <item>MSVC70</item>+      <item>MSVC71</item>+      <item>MSVC80</item>+      <item>MSVC90</item>     </list>      <list name="environment-variables">@@ -3561,17 +3694,25 @@       <item>CMAKE_CONFIGURATION_TYPES</item>       <item>CMAKE_CONFIG_TYPE</item>       <item>CMAKE_CROSSCOMPILING_EMULATOR</item>+      <item>CMAKE_EXPORT_BUILD_DATABASE</item>       <item>CMAKE_EXPORT_COMPILE_COMMANDS</item>       <item>CMAKE_FRAMEWORK_PATH</item>       <item>CMAKE_GENERATOR</item>       <item>CMAKE_GENERATOR_INSTANCE</item>       <item>CMAKE_GENERATOR_PLATFORM</item>       <item>CMAKE_GENERATOR_TOOLSET</item>+      <item>CMAKE_INCLUDE_PATH</item>       <item>CMAKE_INSTALL_MODE</item>+      <item>CMAKE_INSTALL_PREFIX</item>+      <item>CMAKE_LIBRARY_PATH</item>+      <item>CMAKE_MAXIMUM_RECURSION_DEPTH</item>       <item>CMAKE_MSVCIDE_RUN_PATH</item>       <item>CMAKE_NO_VERBOSE</item>       <item>CMAKE_OSX_ARCHITECTURES</item>       <item>CMAKE_PREFIX_PATH</item>+      <item>CMAKE_PROGRAM_PATH</item>+      <item>CMAKE_TLS_VERIFY</item>+      <item>CMAKE_TLS_VERSION</item>       <item>CMAKE_TOOLCHAIN_FILE</item>       <item>CSFLAGS</item>       <item>CTEST_INTERACTIVE_DEBUG_MODE</item>@@ -3603,6 +3744,7 @@       <item>QTIFWDIR</item>       <item>RC</item>       <item>RCFLAGS</item>+      <item>SOURCE_DATE_EPOCH</item>       <item>SSL_CERT_DIR</item>       <item>SSL_CERT_FILE</item>       <item>SWIFTC</item>@@ -3639,6 +3781,7 @@       <item>PACKAGES_FOUND</item>       <item>PACKAGES_NOT_FOUND</item>       <item>PREDEFINED_TARGETS_FOLDER</item>+      <item>PROPAGATE_TOP_LEVEL_INCLUDES_TO_TRY_COMPILE</item>       <item>REPORT_UNDEFINED_PROPERTIES</item>       <item>RULE_LAUNCH_COMPILE</item>       <item>RULE_LAUNCH_CUSTOM</item>@@ -3688,7 +3831,9 @@     <list name="target-properties">       <item>ADDITIONAL_CLEAN_FILES</item>       <item>AIX_EXPORT_ALL_SYMBOLS</item>+      <item>AIX_SHARED_LIBRARY_ARCHIVE</item>       <item>ALIASED_TARGET</item>+      <item>ALIAS_GLOBAL</item>       <item>ANDROID_ANT_ADDITIONAL_OPTIONS</item>       <item>ANDROID_API</item>       <item>ANDROID_API_MIN</item>@@ -3779,6 +3924,7 @@       <item>ENABLE_EXPORTS</item>       <item>EXCLUDE_FROM_ALL</item>       <item>EXCLUDE_FROM_DEFAULT_BUILD</item>+      <item>EXPORT_BUILD_DATABASE</item>       <item>EXPORT_COMPILE_COMMANDS</item>       <item>EXPORT_NAME</item>       <item>EXPORT_NO_SYSTEM</item>@@ -3861,6 +4007,8 @@       <item>LINK_INTERFACE_MULTIPLICITY</item>       <item>LINK_LIBRARIES</item>       <item>LINK_LIBRARIES_ONLY_TARGETS</item>+      <item>LINK_LIBRARIES_STRATEGY</item>+      <item>LINK_LIBRARY_OVERRIDE</item>       <item>LINK_OPTIONS</item>       <item>LINK_SEARCH_END_STATIC</item>       <item>LINK_SEARCH_START_STATIC</item>@@ -3870,7 +4018,12 @@       <item>MACHO_CURRENT_VERSION</item>       <item>MACOSX_BUNDLE</item>       <item>MACOSX_BUNDLE_INFO_PLIST</item>+      <item>MACOSX_FRAMEWORK_BUNDLE_NAME</item>+      <item>MACOSX_FRAMEWORK_BUNDLE_VERSION</item>+      <item>MACOSX_FRAMEWORK_ICON_FILE</item>+      <item>MACOSX_FRAMEWORK_IDENTIFIER</item>       <item>MACOSX_FRAMEWORK_INFO_PLIST</item>+      <item>MACOSX_FRAMEWORK_SHORT_VERSION_STRING</item>       <item>MACOSX_RPATH</item>       <item>MANUALLY_ADDED_DEPENDENCIES</item>       <item>MSVC_DEBUG_INFORMATION_FORMAT</item>@@ -3914,9 +4067,14 @@       <item>STATIC_LIBRARY_OPTIONS</item>       <item>SUFFIX</item>       <item>SYSTEM</item>+      <item>Swift_COMPILATION_MODE</item>       <item>Swift_DEPENDENCIES_FILE</item>+      <item>Swift_LANGUAGE_VERSION</item>       <item>Swift_MODULE_DIRECTORY</item>       <item>Swift_MODULE_NAME</item>+      <item>TEST_LAUNCHER</item>+      <item>TRANSITIVE_COMPILE_PROPERTIES</item>+      <item>TRANSITIVE_LINK_PROPERTIES</item>       <item>TYPE</item>       <item>UNITY_BUILD</item>       <item>UNITY_BUILD_BATCH_SIZE</item>@@ -3939,6 +4097,8 @@       <item>VS_DOTNET_STARTUP_OBJECT</item>       <item>VS_DOTNET_TARGET_FRAMEWORK_VERSION</item>       <item>VS_DPI_AWARE</item>+      <item>VS_FILTER_PROPS</item>+      <item>VS_FRAMEWORK_REFERENCES</item>       <item>VS_GLOBAL_KEYWORD</item>       <item>VS_GLOBAL_PROJECT_TYPES</item>       <item>VS_GLOBAL_ROOTNAMESPACE</item>@@ -3959,6 +4119,7 @@       <item>VS_SDK_REFERENCES</item>       <item>VS_SOLUTION_DEPLOY</item>       <item>VS_USER_PROPS</item>+      <item>VS_USE_DEBUG_LIBRARIES</item>       <item>VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION</item>       <item>VS_WINRT_COMPONENT</item>       <item>VS_WINRT_EXTENSIONS</item>@@ -4144,6 +4305,14 @@       <item>Fortran_COMPILER_ID</item>       <item>HIP_COMPILER_ID</item>       <item>ISPC_COMPILER_ID</item>+      <item>C_COMPILER_FRONTEND_VARIANT</item>+      <item>CXX_COMPILER_FRONTEND_VARIANT</item>+      <item>CUDA_COMPILER_FRONTEND_VARIANT</item>+      <item>OBJC_COMPILER_FRONTEND_VARIANT</item>+      <item>OBJCXX_COMPILER_FRONTEND_VARIANT</item>+      <item>Fortran_COMPILER_FRONTEND_VARIANT</item>+      <item>HIP_COMPILER_FRONTEND_VARIANT</item>+      <item>ISPC_COMPILER_FRONTEND_VARIANT</item>       <item>COMPILE_LANGUAGE</item>       <item>COMPILE_LANG_AND_ID</item>       <item>COMPILE_FEATURES</item>@@ -4200,6 +4369,7 @@       <item>ANGLE-R</item>       <item>COMMA</item>       <item>SEMICOLON</item>+      <item>QUOTE</item>     </list>     <list name="genex-LIST-subcommands">       <item>LENGTH</item>@@ -4557,6 +4727,7 @@         <WordDetect String="cmake_minimum_required" insensitive="true" attribute="Command" context="cmake_minimum_required_ctx"/>         <WordDetect String="cmake_parse_arguments" insensitive="true" attribute="Command" context="cmake_parse_arguments_ctx"/>         <WordDetect String="cmake_path" insensitive="true" attribute="Command" context="cmake_path_ctx"/>+        <WordDetect String="cmake_pkg_config" insensitive="true" attribute="Command" context="cmake_pkg_config_ctx"/>         <WordDetect String="cmake_policy" insensitive="true" attribute="Command" context="cmake_policy_ctx"/>         <WordDetect String="configure_file" insensitive="true" attribute="Command" context="configure_file_ctx"/>         <WordDetect String="continue" insensitive="true" attribute="Control Flow" context="break_ctx"/>@@ -4719,6 +4890,8 @@         <WordDetect String="find_dependency" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>         <WordDetect String="configure_package_config_file" insensitive="true" attribute="CMake Provided Function/Macro" context="configure_package_config_file_ctx"/>         <WordDetect String="write_basic_package_version_file" insensitive="true" attribute="CMake Provided Function/Macro" context="write_basic_package_version_file_ctx"/>+        <WordDetect String="generate_apple_platform_selection_file" insensitive="true" attribute="CMake Provided Function/Macro" context="generate_apple_platform_selection_file_ctx"/>+        <WordDetect String="generate_apple_architecture_selection_file" insensitive="true" attribute="CMake Provided Function/Macro" context="generate_apple_architecture_selection_file_ctx"/>         <WordDetect String="cmake_print_properties" insensitive="true" attribute="CMake Provided Function/Macro" context="cmake_print_properties_ctx"/>         <WordDetect String="cmake_push_check_state" insensitive="true" attribute="CMake Provided Function/Macro" context="cmake_push_check_state_ctx"/>         <WordDetect String="cmake_pop_check_state" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>@@ -4902,6 +5075,17 @@         <keyword attribute="Named Args" context="#stay" String="cmake_path_nargs"/>         <IncludeRules context="User Function Args"/>       </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_pkg_config_ctx">+        <DetectChar attribute="Normal Text" context="cmake_pkg_config_ctx_op" char="("/>+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_pkg_config_ctx_op">+        <DetectSpaces/>+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>+        <keyword attribute="Named Args" context="#stay" String="cmake_pkg_config_nargs"/>+        <keyword attribute="Special Args" context="#stay" String="cmake_pkg_config_sargs"/>+        <IncludeRules context="User Function Args"/>+      </context>       <context attribute="Normal Text" lineEndContext="#stay" name="cmake_policy_ctx">         <DetectChar attribute="Normal Text" context="cmake_policy_ctx_op" char="("/>         <DetectChar attribute="Normal Text" context="#pop" char=")"/>@@ -5469,13 +5653,14 @@         <DetectSpaces/>         <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>         <WordDetect String="TARGETS" attribute="Named Args" context="export_tgts"/>+        <WordDetect String="TARGET" attribute="Named Args" context="export_tgts"/>         <keyword attribute="Named Args" context="#stay" String="export_nargs"/>         <IncludeRules context="User Function Args"/>       </context>       <context attribute="Normal Text" lineEndContext="#stay" name="export_tgts">         <DetectSpaces/>         <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>-        <keyword attribute="Named Args" context="#pop" String="export_nargs"/>+        <keyword attribute="Named Args" context="#pop" String="export_nargs" lookAhead="true"/>         <IncludeRules context="Detect Aliased Targets"/>         <IncludeRules context="Detect Targets"/>         <IncludeRules context="User Function Args"/>@@ -5550,7 +5735,7 @@       <context attribute="Normal Text" lineEndContext="#stay" name="install_tgts">         <DetectSpaces/>         <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>-        <keyword attribute="Named Args" context="#pop" String="install_nargs"/>+        <keyword attribute="Named Args" context="#pop" String="install_nargs" lookAhead="true"/>         <IncludeRules context="Detect Aliased Targets"/>         <IncludeRules context="Detect Targets"/>         <IncludeRules context="User Function Args"/>@@ -6023,6 +6208,26 @@         <keyword attribute="Special Args" context="#stay" String="write_basic_package_version_file_sargs"/>         <IncludeRules context="User Function Args"/>       </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="generate_apple_platform_selection_file_ctx">+        <DetectChar attribute="Normal Text" context="generate_apple_platform_selection_file_ctx_op" char="("/>+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="generate_apple_platform_selection_file_ctx_op">+        <DetectSpaces/>+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>+        <keyword attribute="Named Args" context="#stay" String="generate_apple_platform_selection_file_nargs"/>+        <IncludeRules context="User Function Args"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="generate_apple_architecture_selection_file_ctx">+        <DetectChar attribute="Normal Text" context="generate_apple_architecture_selection_file_ctx_op" char="("/>+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="generate_apple_architecture_selection_file_ctx_op">+        <DetectSpaces/>+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>+        <keyword attribute="Named Args" context="#stay" String="generate_apple_architecture_selection_file_nargs"/>+        <IncludeRules context="User Function Args"/>+      </context>       <context attribute="Normal Text" lineEndContext="#stay" name="cmake_print_properties_ctx">         <DetectChar attribute="Normal Text" context="cmake_print_properties_ctx_op" char="("/>         <DetectChar attribute="Normal Text" context="#pop" char=")"/>@@ -6037,7 +6242,7 @@       <context attribute="Normal Text" lineEndContext="#stay" name="cmake_print_properties_tgts">         <DetectSpaces/>         <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>-        <keyword attribute="Named Args" context="#pop" String="cmake_print_properties_nargs"/>+        <keyword attribute="Named Args" context="#pop" String="cmake_print_properties_nargs" lookAhead="true"/>         <IncludeRules context="Detect Aliased Targets"/>         <IncludeRules context="Detect Targets"/>         <IncludeRules context="User Function Args"/>@@ -6381,7 +6586,7 @@       <context attribute="Normal Text" lineEndContext="#stay" name="install_jar_exports_tgts">         <DetectSpaces/>         <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>-        <keyword attribute="Named Args" context="#pop" String="install_jar_exports_nargs"/>+        <keyword attribute="Named Args" context="#pop" String="install_jar_exports_nargs" lookAhead="true"/>         <IncludeRules context="Detect Aliased Targets"/>         <IncludeRules context="Detect Targets"/>         <IncludeRules context="User Function Args"/>@@ -6401,7 +6606,7 @@       <context attribute="Normal Text" lineEndContext="#stay" name="export_jars_tgts">         <DetectSpaces/>         <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>-        <keyword attribute="Named Args" context="#pop" String="export_jars_nargs"/>+        <keyword attribute="Named Args" context="#pop" String="export_jars_nargs" lookAhead="true"/>         <IncludeRules context="Detect Aliased Targets"/>         <IncludeRules context="Detect Targets"/>         <IncludeRules context="User Function Args"/>@@ -6606,7 +6811,7 @@       </context>        <context attribute="Normal Text" lineEndContext="#stay" name="Detect More target-properties">-        <RegExpr attribute="Property" context="#stay" String="\b(?:&var_ref_re;_((COMPIL|LINK)ER_LAUNCHER|CLANG_TIDY(_EXPORT_FIXES_DIR)?|CPP(CHECK|LINT)|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|((ARCHIVE|LIBRARY|RUNTIME)_OUTPUT_(DIRECTORY|NAME)|COMPILE_PDB_(NAME|OUTPUT_DIRECTORY)|CXX_MODULE_(DIRS|SET)|EXCLUDE_FROM_DEFAULT_BUILD|FRAMEWORK_MULTI_CONFIG_POSTFIX|HEADER_(DIRS|SET)|IMPORTED_((NO_)?SONAME|IMPLIB|LIBNAME|LINK_(DEPENDENT_LIBRARIES|INTERFACE_(LANGUAGES|LIBRARIES|MULTIPLICITY))|LOCATION|OBJECTS)|INTERPROCEDURAL_OPTIMIZATION|LINK_(FLAGS|INTERFACE_(LIBRARIES|MULTIPLICITY))|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_(NAME|OUTPUT_DIRECTORY)|STATIC_LIBRARY_FLAGS|VS_(DOTNET_REFERENCE(PROP_&var_ref_re;_TAG)?|GLOBAL|SOURCE_SETTINGS))_&var_ref_re;|XCODE_(ATTRIBUTE_&var_ref_re;|EMBED_&var_ref_re;(_((CODE_SIGN|REMOVE_HEADERS)_ON_COPY|PATH))?))\b"/>+        <RegExpr attribute="Property" context="#stay" String="\b(?:&var_ref_re;_((COMPIL|LINK)ER_LAUNCHER|CLANG_TIDY(_EXPORT_FIXES_DIR)?|CPP(CHECK|LINT)|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|((ARCHIVE|LIBRARY|RUNTIME)_OUTPUT_(DIRECTORY|NAME)|COMPILE_PDB_(NAME|OUTPUT_DIRECTORY)|CXX_MODULE_(DIRS|SET)|EXCLUDE_FROM_DEFAULT_BUILD|FRAMEWORK_MULTI_CONFIG_POSTFIX|HEADER_(DIRS|SET)|IMPORTED_((NO_)?SONAME|IMPLIB|LIBNAME|LINK_(DEPENDENT_LIBRARIES|INTERFACE_(LANGUAGES|LIBRARIES|MULTIPLICITY))|LOCATION|OBJECTS)|INTERPROCEDURAL_OPTIMIZATION|LINK_(FLAGS|INTERFACE_(LIBRARIES|MULTIPLICITY)|LIBRARY_OVERRIDE)|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_(NAME|OUTPUT_DIRECTORY)|STATIC_LIBRARY_FLAGS|VS_(DOTNET_REFERENCE(PROP_&var_ref_re;_TAG)?|GLOBAL|SOURCE_SETTINGS))_&var_ref_re;|XCODE_(ATTRIBUTE_&var_ref_re;|EMBED_&var_ref_re;(_((CODE_SIGN|REMOVE_HEADERS)_ON_COPY|PATH))?))\b"/>       </context>        <context attribute="Normal Text" lineEndContext="#stay" name="Detect More source-properties">@@ -6632,7 +6837,7 @@        <context attribute="Normal Text" lineEndContext="#stay" name="Detect More Builtin Variables">         <RegExpr attribute="CMake Internal Variable" context="#stay" String="\b(?:CMAKE_&var_ref_re;_(COMPILER_(ABI|ARCHITECTURE_ID|VERSION_INTERNAL)|PLATFORM_ID))\b"/>-        <RegExpr attribute="Builtin Variable" context="#stay" String="\b(?:&var_ref_re;_(((STATIC_)?LINK_)?LIBRARIES|(BINARY|SOURCE)_DIR|(C|LD)FLAGS(_OTHER)?|(INCLUDE|LIBRARY)_DIRS|CONFIG|CONSIDERED_(CONFIGS|VERSIONS)|DESCRIPTION|FIND_(COMPONENTS|REQUIRED(_&var_ref_re;)?|VERSION_(COMPLETE|COUNT|EXACT|M(AX|IN)(_(COUNT|MAJOR|MINOR|PATCH|TWEAK))?|RANGE(_(MAX|MIN))?)|QUIETLY)|FOUND|HOMEPAGE_URL|IS_TOP_LEVEL|KEYWORDS_MISSING_VALUES|MODULE_NAME|ROOT|UNPARSED_ARGUMENTS|VERSION(_(MAJOR|MINOR|PATCH|TWEAK|COUNT|STRING))?)|&var_ref_re;__TRYRUN_OUTPUT|(DOXYGEN|ExternalData_(CUSTOM_SCRIPT|URL_ALGO)|FETCHCONTENT_(SOURCE_DIR|UPDATES_DISCONNECTED))_&var_ref_re;|ARGV[0-9]+|BISON_&var_ref_re;_(COMPILE_FLAGS|DEFINED|INPUT|OUTPUT(S|_(HEADER|SOURCE)))|Boost_&var_ref_re;_LIBRARY(_(DEBUG|RELEASE))?|CMAKE_(&var_ref_re;_(ANDROID_TOOLCHAIN_((PRE|SUF)FIX|MACHINE)|ARCHIVE_(APPEND|CREATE|FINISH)|BYTE_ORDER|CLANG_TIDY(_EXPORT_FIXES_DIR)?|COMPILER(_(AR|EXTERNAL_TOOLCHAIN|FRONTEND_VARIANT|ID|LAUNCHER|LOADED|RANLIB|TARGET|VERSION))?|COMPILE_OBJECT|CPP(CHECK|LINT)|CREATE_(SHARED_(LIBRARY|MODULE)|STATIC_LIBRARY)|EXTENSIONS(_DEFAULT)?|FLAGS(_((DEBUG|MINSIZEREL|REL(EASE|WITHDEBINFO)|&var_ref_re;)(_INIT)?|INIT))?|GHS_KERNEL_FLAGS_(DEBUG|MINSIZEREL|REL(EASE|WITHDEBINFO))|IGNORE_EXTENSIONS|IMPLICIT_(INCLUDE_DIRECTORIES|LINK_((FRAMEWORK_)?DIRECTORIES|LIBRARIES))|INCLUDE_WHAT_YOU_USE|LIBRARY_ARCHITECTURE|LINKER_(LAUNCHER|PREFERENCE(_PROPAGATES)?|WRAPPER_FLAG(_SEP)?)|LINK_(EXECUTABLE|GROUP_USING_&var_ref_re;(_SUPPORTED)?|LIBRARY_(FILE_FLAG|FLAG|USING_&var_ref_re;(_SUPPORTED)?)|WHAT_YOU_USE_FLAG)|OUTPUT_EXTENSION|POSTFIX|SIMULATE_(ID|VERSION)|SIZEOF_DATA_PTR|SOURCE_FILE_EXTENSIONS|STANDARD_(INCLUDE_DIRECTO|LIBRA)RIES|VISIBILITY_PRESET)|((ARCHIVE|(COMPILE_)?PDB|LIBRARY|RUNTIME)_OUTPUT_DIRECTORY|(DISABLE|REQUIRE)_FIND_PACKAGE|FRAMEWORK_MULTI_CONFIG_POSTFIX|GET_OS_RELEASE_FALLBACK_RESULT|INTERPROCEDURAL_OPTIMIZATION|MAP_IMPORTED_CONFIG|USER_MAKE_RULES_OVERRIDE|XCODE_ATTRIBUTE)_&var_ref_re;|(EXE|MODULE|SHARED|STATIC)_LINKER_FLAGS_&var_ref_re;(_INIT)?|LINK_(GROUP|LIBRARY)_USING_&var_ref_re;(_SUPPORTED)?|PROJECT_&var_ref_re;_INCLUDE(_BEFORE)?)|CMAKE_(ARGV|MATCH_)[0-9]+|CMAKE_POLICY_(DEFAULT|WARNING)_CMP[0-9]{4}|CPACK_(&var_ref_re;_COMPONENT_INSTALL|ARCHIVE_&var_ref_re;_FILE_NAME|BINARY_&var_ref_re;|COMPONENT_&var_ref_re;_(DEPENDS|DESCRIPTION|DIS(ABLED|PLAY_NAME)|GROUP|HIDDEN|REQUIRED)|DEBIAN_&var_ref_re;_(DESCRIPTION|FILE_NAME|PACKAGE_((PRE)?DEPENDS|ARCHITECTURE|BREAKS|CONFLICTS|CONTROL_(EXTRA|STRICT_PERMISSION)|ENHANCES|NAME|PRIORITY|PROVIDES|RECOMMENDS|REPLACES|SECTION|SHLIBDEPS|SOURCE|SUGGESTS)|DEBUGINFO_PACKAGE)|DMG_&var_ref_re;_FILE_NAME|INNOSETUP_(&var_ref_re;_INSTALL_DIRECTORY|(DEFINE|SETUP)_&var_ref_re;)|NSIS_&var_ref_re;_INSTALL_DIRECTORY|NUGET_(&var_ref_re;_PACKAGE_(AUTHORS|COPYRIGHT|DEPENDENCIES(_&var_ref_re;_VERSION)?|DESCRIPTION(_SUMMARY)?|HOMEPAGE_URL|ICON(URL)?|LANGUAGE|LICENSE(URL|_(EXPRESSION|FILE_NAME))|NAME|OWNERS|RELEASE_NOTES|TAGS|TITLE|VERSION)|PACKAGE_DEPENDENCIES_&var_ref_re;_VERSION)|P(RE|OST)FLIGHT_&var_ref_re;_SCRIPT|RPM_(&var_ref_re;_(DEFAULT_((DIR|FILE)_PERMISSIONS|GROUP|USER)|BUILD_SOURCE_DIRS_PREFIX|DEBUGINFO_(FILE_NAME|PACKAGE)|FILE_NAME|PACKAGE_(ARCHITECTURE|AUTO(PROV|REQ(PROV)?)|CONFLICTS|DESCRIPTION|GROUP|NAME|OBSOLETES|PREFIX|PROVIDES|REQUIRES(_P(RE|OST)(UN)?)?|SUGGESTS|SUMMARY|URL)|USER_(FILELIST|BINARY_SPECFILE))|NO_&var_ref_re;_INSTALL_PREFIX_RELOCATION)|WIX_(&var_ref_re;_EXT(ENSIONS|RA_FLAGS)|PROPERTY_&var_ref_re;))|ICU_&var_ref_re;_(LIBRARY|EXECUTABLE)|MPI_&var_ref_re;_(ADDITIONAL_INCLUDE_VARS|COMPILE(R|_(DEFINI|OP)TIONS)|LIB(_NAMES|RARY))|OpenACC_&var_ref_re;_(FLAGS|OPTIONS|SPEC_DATE)|OpenMP_&var_ref_re;_(FLAGS|LIB(_NAMES|RARY)|SPEC_DATE)|SWIG_MODULE_&var_ref_re;_EXTRA_DEPS)\b"/>+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b(?:&var_ref_re;_(((STATIC_)?LINK_)?LIBRARIES|(BINARY|SOURCE)_DIR|(C|LD)FLAGS(_OTHER)?|(INCLUDE|LIBRARY)_DIRS|CONFIG|CONSIDERED_(CONFIGS|VERSIONS)|DESCRIPTION|FIND_(COMPONENTS|REQUIRED(_&var_ref_re;)?|VERSION_(COMPLETE|COUNT|EXACT|M(AX|IN)(_(COUNT|MAJOR|MINOR|PATCH|TWEAK))?|RANGE(_(MAX|MIN))?)|QUIETLY)|FOUND|HOMEPAGE_URL|IS_TOP_LEVEL|KEYWORDS_MISSING_VALUES|MODULE_NAME|ROOT|UNPARSED_ARGUMENTS|VERSION(_(MAJOR|MINOR|PATCH|TWEAK|COUNT|STRING))?)|&var_ref_re;__TRYRUN_OUTPUT|(DOXYGEN|ExternalData_(CUSTOM_SCRIPT|URL_ALGO)|FETCHCONTENT_(SOURCE_DIR|UPDATES_DISCONNECTED))_&var_ref_re;|ARGV[0-9]+|BISON_&var_ref_re;_(COMPILE_FLAGS|DEFINED|INPUT|OUTPUT(S|_(HEADER|SOURCE)))|Boost_&var_ref_re;_LIBRARY(_(DEBUG|RELEASE))?|CMAKE_(&var_ref_re;_(ANDROID_TOOLCHAIN_((PRE|SUF)FIX|MACHINE)|ARCHIVE_(APPEND|CREATE|FINISH)|BYTE_ORDER|CLANG_TIDY(_EXPORT_FIXES_DIR)?|COMPILER(_(AR|EXTERNAL_TOOLCHAIN|FRONTEND_VARIANT|ID|LAUNCHER|LINKER(_(FRONTEND_VARIANT|ID|VERSION))?|LOADED|PREDEFINES_COMMAND|RANLIB|TARGET|VERSION))?|COMPILE_OBJECT|CPP(CHECK|LINT)|CREATE_(SHARED_(LIBRARY(_ARCHIVE)?|MODULE)|STATIC_LIBRARY)|EXTENSIONS(_DEFAULT)?|FLAGS(_((DEBUG|MINSIZEREL|REL(EASE|WITHDEBINFO)|&var_ref_re;)(_INIT)?|INIT))?|HOST_COMPILER(_ID)?|IGNORE_EXTENSIONS|IMPLICIT_(INCLUDE_DIRECTORIES|LINK_((FRAMEWORK_)?DIRECTORIES|LIBRARIES))|INCLUDE_WHAT_YOU_USE|LIBRARY_ARCHITECTURE|LINKER_(LAUNCHER|PREFERENCE(_PROPAGATES)?|WRAPPER_FLAG(_SEP)?)|LINK_(EXECUTABLE|GROUP_USING_&var_ref_re;(_SUPPORTED)?|LIBRARY_(FILE_FLAG|FLAG|USING_&var_ref_re;(_SUPPORTED)?)|WHAT_YOU_USE_FLAG)|OUTPUT_EXTENSION|POSTFIX|SIMULATE_(ID|VERSION)|SIZEOF_DATA_PTR|SOURCE_FILE_EXTENSIONS|STANDARD_((INCLUDE_DIRECTO|LIBRA)RIES|DEFAULT|LATEST|LINK_DIRECTORIES)|USING_LINKER_(&var_ref_re;|MODE)|VISIBILITY_PRESET)|((ARCHIVE|(COMPILE_)?PDB|LIBRARY|RUNTIME)_OUTPUT_DIRECTORY|(DISABLE|REQUIRE)_FIND_PACKAGE|FRAMEWORK_MULTI_CONFIG_POSTFIX|GET_OS_RELEASE_FALLBACK_RESULT|INTERPROCEDURAL_OPTIMIZATION|MAP_IMPORTED_CONFIG|USER_MAKE_RULES_OVERRIDE|XCODE_ATTRIBUTE)_&var_ref_re;|(EXE|MODULE|SHARED|STATIC)_LINKER_FLAGS_&var_ref_re;(_INIT)?|LINK_(GROUP_USING_&var_ref_re;(_SUPPORTED)?|LIBRARY_(&var_ref_re;_ATTRIBUTES|USING_&var_ref_re;(_SUPPORTED)?))|PKG_CONFIG_&var_ref_re;_PRIVATE|PROJECT_&var_ref_re;_INCLUDE(_BEFORE)?)|CMAKE_(ARGV|MATCH_)[0-9]+|CMAKE_POLICY_(DEFAULT|WARNING)_CMP[0-9]{4}|CPACK_(&var_ref_re;_COMPONENT_INSTALL|ARCHIVE_&var_ref_re;_FILE_NAME|BINARY_&var_ref_re;|COMPONENT_&var_ref_re;_(DEPENDS|DESCRIPTION|DIS(ABLED|PLAY_NAME)|GROUP|HIDDEN|REQUIRED)|DEBIAN_&var_ref_re;_(DESCRIPTION|FILE_NAME|PACKAGE_((PRE)?DEPENDS|ARCHITECTURE|BREAKS|CONFLICTS|CONTROL_(EXTRA|STRICT_PERMISSION)|ENHANCES|MULTIARCH|NAME|PRIORITY|PROVIDES|RECOMMENDS|REPLACES|SECTION|SHLIBDEPS|SOURCE|SUGGESTS)|DEBUGINFO_PACKAGE)|DMG_&var_ref_re;_FILE_NAME|INNOSETUP_(&var_ref_re;_INSTALL_DIRECTORY|(DEFINE|SETUP)_&var_ref_re;)|NSIS_&var_ref_re;_INSTALL_DIRECTORY|NUGET_(&var_ref_re;_(PACKAGE_(AUTHORS|COPYRIGHT|DEPENDENCIES(_&var_ref_re;)?|DESCRIPTION(_SUMMARY)?|HOMEPAGE_URL|ICON(URL)?|LANGUAGE|LICENSE(URL|_(EXPRESSION|FILE_NAME))|NAME|OWNERS|README|RELEASE_NOTES|TAGS|TFMS|TITLE)|REPOSITORY_(BRANCH|COMMIT|TYPE|URL))|PACKAGE_DEPENDENCIES_&var_ref_re;)|P(RE|OST)FLIGHT_&var_ref_re;_SCRIPT|RPM_(&var_ref_re;_(DEFAULT_((DIR|FILE)_PERMISSIONS|GROUP|USER)|BUILD_SOURCE_DIRS_PREFIX|DEBUGINFO_(FILE_NAME|PACKAGE)|FILE_NAME|PACKAGE_(ARCHITECTURE|AUTO(PROV|REQ(PROV)?)|CONFLICTS|DESCRIPTION|GROUP|NAME|OBSOLETES|PREFIX|PROVIDES|REQUIRES(_P(RE|OST)(UN)?)?|SUGGESTS|SUMMARY|URL)|USER_(FILELIST|BINARY_SPECFILE))|NO_&var_ref_re;_INSTALL_PREFIX_RELOCATION)|WIX_(&var_ref_re;_EXT(ENSIONS|RA_FLAGS)|PROPERTY_&var_ref_re;))|ICU_&var_ref_re;_(LIBRARY|EXECUTABLE)|MPI_&var_ref_re;_(ADDITIONAL_INCLUDE_VARS|COMPILE(R|_(DEFINI|OP)TIONS)|LIB(_NAMES|RARY))|OpenACC_&var_ref_re;_(FLAGS|OPTIONS|SPEC_DATE)|OpenMP_&var_ref_re;_(FLAGS|LIB(_NAMES|RARY)|SPEC_DATE)|SWIG_MODULE_&var_ref_re;_EXTRA_DEPS)\b"/>       </context>        <context attribute="Normal Text" lineEndContext="#stay" name="Detect Variable Substitutions">
xml/commonlisp.xml view
@@ -2,7 +2,7 @@ <!DOCTYPE language [     <!ENTITY identchar "[A-Za-z0-9-+&lt;&gt;/*]"> ]>-<language version="11" kateversion="5.79" name="Common Lisp" section="Sources" extensions="*.lisp;*.cl;*.lsp;*.el" mimetype="" author="Dominik Haumann (dhaumann@kde.org)" license="MIT">+<language version="12" kateversion="5.79" name="Common Lisp" section="Sources" extensions="*.lisp;*.cl;*.lsp;*.el" mimetype="" author="Dominik Haumann (dhaumann@kde.org)" license="MIT">   <highlighting>     <list name="symbols">       <item>&lt;</item>@@ -911,7 +911,6 @@       <item>translate-pathname</item>        <item>tree-equal</item>        <item>truename</item> -      <item>truncase</item>        <item>truncate</item>        <item>two-way-stream</item>        <item>two-way-stream-input-stream</item> 
xml/isocpp.xml view
@@ -35,7 +35,7 @@ <language     name="ISO C++"     section="Sources"-    version="31"+    version="32"     kateversion="5.79"     indenter="cstyle"     style="C++"@@ -468,24 +468,24 @@       </context>        <context name="IntSuffixPattern" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="NumericSuffixError">+        <DetectChar context="#pop!NumericUserSuffixPattern" char="_" lookAhead="1"/>         <!-- https://en.cppreference.com/w/cpp/language/integer_literal#The_type_of_the_literal -->         <RegExpr attribute="Standard Suffix" context="NumericSuffixError" String="([Uu](LL?|ll?|[Zz])?|(LL?|ll?|[Zz])[Uu]?)\b"/>         <!-- https://en.cppreference.com/w/cpp/language/user_literal#Standard_library -->         <RegExpr attribute="Standard Classes" context="NumericSuffixError" String="(?:i[fl]?|min|[mun]?s|[hyd])\b"/>-        <DetectChar context="#pop!NumericUserSuffixPattern" char="_" lookAhead="1"/>       </context>        <context name="FloatSuffix" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="NumericSuffixError">         <DetectChar attribute="Error" context="#stay" char="'" />-        <AnyChar context="#pop!FloatSuffixPattern" String="fFlLimsh_" lookAhead="1"/>+        <AnyChar context="#pop!FloatSuffixPattern" String="fFlLbBimshd_" lookAhead="1"/>       </context>        <context name="FloatSuffixPattern" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="NumericSuffixError">+        <DetectChar context="#pop!NumericUserSuffixPattern" char="_" lookAhead="1"/>         <!-- https://en.cppreference.com/w/cpp/language/floating_literal#Syntax -->-        <AnyChar attribute="Standard Suffix" context="NumericSuffixError" String="fFlL" />+        <RegExpr attribute="Standard Suffix" context="NumericSuffixError" String="[fF](?:16|32|64|128)?|[lL]|bf16|BF16"/>         <!-- https://en.cppreference.com/w/cpp/language/user_literal#Standard_library -->-        <RegExpr attribute="Standard Classes" context="NumericSuffixError" String="(?:i[fl]?|min|[mun]?s|h)\b" />-        <DetectChar context="#pop!NumericUserSuffixPattern" char="_" lookAhead="1" />+        <RegExpr attribute="Standard Classes" context="NumericSuffixError" String="(?:i[fl]?|min|[mun]?s|[hd])\b"/>       </context>        <context name="NumericUserSuffixPattern" attribute="Error" lineEndContext="#pop#pop">
xml/javascript-react.xml view
@@ -53,7 +53,7 @@      * v1 [2018-06-20]: Initial version --> -<language name="JavaScript React (JSX)" version="10" kateversion="5.53" section="Scripts" indenter="cstyle"+<language name="JavaScript React (JSX)" alternativeNames="JSX" version="11" kateversion="5.53" section="Scripts" indenter="cstyle"           priority="9" extensions="*.jsx" mimetype="text/jsx;text/x-jsx;application/jsx;application/x-jsx;"           author="Nibaldo González (nibgonz@gmail.com)" license="MIT"> 
xml/json.xml view
@@ -13,7 +13,7 @@  ** https://www.json.org/json-en.html  *************************************************************************** -->-<language name="JSON" section="Markup" version="8" kateversion="2.4" extensions="*.json;.kateproject;.arcconfig;*.geojson;*.gltf;*.theme" mimetype="application/json" author="Sebastian Pipping (sebastian@pipping.org)" license="GPL">+<language name="JSON" section="Markup" version="9" kateversion="2.4" extensions="*.json;*.jsonl;.kateproject;.arcconfig;*.geojson;*.gltf;*.theme;*.cast" mimetype="application/json" author="Sebastian Pipping (sebastian@pipping.org)" license="GPL">   <highlighting>     <list name="Constants">       <item>null</item>@@ -62,7 +62,7 @@          <keyword String="Constants" context="#stay" attribute="Style_Keyword" /> -        <RegExpr String="-?\b([1-9][0-9]*\.[0-9]+(?:[eE][+-]?[0-9]+)?)" context="#stay" attribute="Style_Float" />+        <RegExpr String="-?\b((0\b|[1-9][0-9]*)\.[0-9]+(?:[eE][+-]?[0-9]+)?)" context="#stay" attribute="Style_Float" />         <RegExpr String="-?\b(0\b|[1-9][0-9]*(?:[eE][+-]?[0-9]+)?)" context="#stay" attribute="Style_Decimal" />       </context> 
xml/julia.xml view
@@ -36,7 +36,7 @@   <!ENTITY function_begin_boundary "(?:(?&lt;=[&function_disallowed_chars;!]|^)(?=[^&function_disallowed_first_char;]))"> ]> -<language name="Julia" alternativeNames="JL" style="julia" indenter="julia" section="Sources" version="15" kateversion="5.62" extensions="*.jl" casesensitive="1" priority="5" license="MIT">+<language name="Julia" alternativeNames="JL" style="julia" indenter="julia" section="Sources" version="16" kateversion="5.62" extensions="*.jl" casesensitive="1" priority="5" license="MIT">    <highlighting>     <list name="cflow_begin">@@ -45,11 +45,11 @@       <item>if</item>       <item>begin</item>       <item>do</item>+      <item>try</item>     </list>     <list name="cflow_eb">       <item>else</item>       <item>elseif</item>-      <item>try</item>       <item>catch</item>       <item>finally</item>     </list>
xml/latex.xml view
@@ -4,7 +4,7 @@     <!ENTITY bullet "&#xd7;">     <!ENTITY envname "[a-zA-Z]+\*?"> ]>-<language name="LaTeX" version="23" section="Markup" kateversion="5.79" priority="10" extensions="*.tex;*.ltx;*.dtx;*.sty;*.cls;*.bbx;*.cbx;*.lbx;*.tikz;*.pgf" mimetype="text/x-tex" casesensitive="1" author="Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Holger Danielsson (holger.danielsson@versanet.de)+Michel Ludwig (michel.ludwig@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)" license="LGPL" >+<language name="LaTeX" version="24" section="Markup" kateversion="5.79" priority="10" extensions="*.tex;*.ltx;*.dtx;*.sty;*.cls;*.bbx;*.cbx;*.lbx;*.tikz;*.pgf" mimetype="text/x-tex" casesensitive="1" author="Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Holger Danielsson (holger.danielsson@versanet.de)+Michel Ludwig (michel.ludwig@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)" license="LGPL" >   <highlighting>     <!-- NOTE: Keywords of kind "\something" do not need a delimiter before "\".          Using a DetectChar rule with lookAhead to detect "\" at the beginning@@ -5049,9 +5049,9 @@         <DetectSpaces/>         <RegExpr String=".+" attribute="Error" context="#stay"/>       </context>-      <context name="HighlightingRuby" attribute="Normal Text" lineEndContext="#stay">+      <context name="HighlightingRuby" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="Expr##Ruby">         <IncludeRules context="HighlightingCommon"/>-        <IncludeRules context="##Ruby" includeAttrib="true"/>+        <IncludeRules context="Ruby##Ruby" includeAttrib="true"/>       </context>        <context name="HighlightingRustCodeEnvS" attribute="Error" lineEndContext="#stay">
xml/lua.xml view
@@ -48,7 +48,7 @@     - NOTE, FIXME, TODO alerts added on comments     - improved highlighting -->-<language name="Lua" version="18" indenter="lua" kateversion="5.79" section="Scripts" extensions="*.lua;*.rockspec" mimetype="text/x-lua">+<language name="Lua" version="19" indenter="cstyle" kateversion="5.79" section="Scripts" extensions="*.lua;*.rockspec" mimetype="text/x-lua">   <highlighting>     <list name="keywords">       <item>and</item>
xml/markdown.xml view
@@ -94,7 +94,7 @@ <!ENTITY checkbox "\[[ x]\](?=\s)"> ]> -<language name="Markdown" version="30" kateversion="5.79" section="Markup" extensions="*.md;*.mmd;*.markdown;*.md.html" mimetype="text/markdown" priority="15" author="Darrin Yeager, Claes Holmerson" license="GPL,BSD">+<language name="Markdown" version="31" kateversion="5.79" section="Markup" extensions="*.md;*.mmd;*.markdown;*.md.html" mimetype="text/markdown" priority="15" author="Darrin Yeager, Claes Holmerson" license="GPL,BSD">   <highlighting>     <contexts>       <!-- Start of the Markdown document: find metadata or code block -->@@ -368,7 +368,8 @@         <RegExpr attribute="Fenced Code" context="#pop!qml-code" String="&fcode;\s*qml(?:types)?&end;" insensitive="true" beginRegion="code-block"/>         <RegExpr attribute="Fenced Code" context="#pop!r-code" String="&fcode;\s*(?:r|rprofile|rscript)&end;" insensitive="true" beginRegion="code-block"/>         <RegExpr attribute="Fenced Code" context="#pop!rest-code" String="&fcode;\s*(?:rst|rest|restructuredtext)&end;" insensitive="true" beginRegion="code-block"/> <!-- Included in the CMake definition -->-        <RegExpr attribute="Fenced Code" context="#pop!ruby-code" String="&fcode;\s*(?:ruby|rbx?|rjs|rake|f?cgi|gemspec|irbrc|ru|prawn|Appraisals|(?:Rake|Cap|Chef|Gem|Guard|Hobo|Vagrant||Rant|Berks|Thor|Puppet)file|rxml|(?:xml|js)\.erb)&end;" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Fenced Code" context="#pop!ruby-code" String="&fcode;\s*(?:ruby|rbx?|rjs|rake|f?cgi|gemspec|irbrc|ru|prawn|Appraisals|(?:Rake|Cap|Chef|Gem|Guard|Hobo|Vagrant||Rant|Berks|Thor|Puppet)file|rxml)&end;" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Fenced Code" context="#pop!rhtml-code" String="&fcode;\s*((?:xml\.|js\.)?erb)&end;" insensitive="true" beginRegion="code-block"/>         <RegExpr attribute="Fenced Code" context="#pop!rust-code" String="&fcode;\s*(?:rust|rs)&end;" insensitive="true" beginRegion="code-block"/>         <RegExpr attribute="Fenced Code" context="#pop!mysql-code" String="&fcode;\s*(?:mysql|sql|ddl)&end;" insensitive="true" beginRegion="code-block"/> <!-- Included in the PHP definition -->         <RegExpr attribute="Fenced Code" context="#pop!nim-code" String="&fcode;\s*(?:nims?)&end;" insensitive="true" beginRegion="code-block"/>@@ -491,9 +492,13 @@         <IncludeRules context="code"/>         <IncludeRules context="##reStructuredText" includeAttrib="true"/>       </context>-      <context attribute="Normal Text" lineEndContext="#stay" name="ruby-code">+      <context attribute="Normal Text" lineEndContext="#stay" name="ruby-code" fallthroughContext="Expr##Ruby">         <IncludeRules context="code"/>-        <IncludeRules context="##Ruby" includeAttrib="true"/>+        <IncludeRules context="Ruby##Ruby" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="rhtml-code">+        <IncludeRules context="code"/>+        <IncludeRules context="##Ruby/Rails/RHTML" includeAttrib="true"/>       </context>       <context attribute="Normal Text" lineEndContext="#stay" name="rust-code">         <IncludeRules context="code"/>
xml/modelines.xml view
@@ -1,14 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?>-<!DOCTYPE language-[-    <!ENTITY space " ">-    <!ENTITY end "&#59;">-]>+<!DOCTYPE language> <!--   Copyright (c) 2012-2014 by Alex Turbov (i.zaufi@gmail.com)   --> <language name="Modelines"-          version="6"+          version="7"           kateversion="5.0"           section="Other"           extensions=""@@ -33,15 +29,15 @@   <list name="Booleans">     <item>auto-brackets</item>     <!-- NOTE Deprecated -->-<!--     <item>auto-insert-doxygen</item> -->+    <!--<item>auto-insert-doxygen</item> -->     <item>automatic-spell-checking</item>                 <!-- NOTE Since KDE 4.?? -->     <item>backspace-indents</item>-    <item>block-selection</item>     <item>bookmark-sorting</item>     <item>bom</item>     <item>byte-order-marker</item>     <item>byte-order-mark</item>     <item>dynamic-word-wrap</item>+    <item>enter-to-insert-completion</item>     <item>folding-markers</item>     <item>folding-preview</item>                          <!-- Since KTextEditor 5.24 -->     <item>icon-border</item>@@ -55,7 +51,8 @@     <!-- <item>remove-trailing-space</item> -->     <item>replace-tabs-save</item>     <item>replace-tabs</item>-    <item>replace-trailing-space-save</item>+    <!-- NOTE Deprecated since KDE 4.10 -->+    <!-- <item>replace-trailing-space-save</item> -->     <item>smart-home</item>     <item>scrollbar-minimap</item>                         <!-- Since KTextEditor 5.24 -->     <item>scrollbar-preview</item>                         <!-- Since KTextEditor 5.24 -->@@ -64,7 +61,6 @@     <item>show-trailing-spaces</item>                     <!-- NOTE Since KDE 4.?? -->     <item>tab-indents</item>     <item>word-wrap</item>-    <item>wrap-cursor</item>   </list>    <list name="True">@@ -82,10 +78,10 @@   <list name="Integrals">     <item>auto-center-lines</item>     <item>font-size</item>-    <item>indent-mode</item>     <item>indent-width</item>     <item>tab-width</item>-    <item>undo-steps</item>+    <!-- NOTE Deprecated since KDE 4 -->+    <!-- <item>undo-steps</item> -->     <item>word-wrap-column</item>   </list> @@ -100,6 +96,7 @@     <item>font</item>     <item>hl</item>     <item>icon-bar-color</item>+    <item>indent-mode</item>     <item>mode</item>                                     <!-- NOTE Since KDE 4.?? -->     <item>scheme</item>     <item>selection-color</item>@@ -129,7 +126,6 @@   <contexts>     <context name="Normal" attribute="Comment" lineEndContext="#stay">       <keyword String="ModelineStartKeyword" context="Modeline" attribute="Keyword" />-      <RegExpr String="\bkate-(?:mimetype|wildcard)\(.*\):" context="Modeline" attribute="Keyword" />     </context>      <context name="Modeline" attribute="Comment" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">@@ -141,31 +137,28 @@     </context>      <context name="Booleans" attribute="Comment" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">-      <DetectSpaces />-      <keyword String="True" attribute="Option ON" context="#stay" />-      <keyword String="False" attribute="Option OFF" context="#stay" />-      <DetectChar char="&end;" context="#pop" attribute="Variable" />+      <IncludeRules context="SpacesEnd"/>+      <keyword String="True" attribute="Option ON" context="#pop!SpacesEnd" />+      <keyword String="False" attribute="Option OFF" context="#pop!SpacesEnd" />     </context>      <context name="Integrals" attribute="Comment" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">-      <DetectSpaces />-      <Int attribute="Number" context="#stay" />-      <DetectChar char="&end;" context="#pop" attribute="Variable" />+      <IncludeRules context="SpacesEnd"/>+      <Int attribute="Number" context="#pop!SpacesEnd" />     </context>      <context name="Strings" attribute="String" lineEndContext="#pop">-      <DetectSpaces />-      <RegExpr String="[^&end;&space;]" context="#stay" />-      <DetectChar char="&end;" context="#pop" attribute="Variable" />+      <IncludeRules context="SpacesEnd"/>     </context>      <context name="RemoveSpaces" attribute="Comment" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">-      <DetectSpaces />-      <keyword String="RemoveSpacesOptions" attribute="Value" context="#pop!RemoveSpacesEnd" />-      <DetectChar char="&end;" context="#pop" attribute="Variable" />+      <IncludeRules context="SpacesEnd"/>+      <keyword String="RemoveSpacesOptions" attribute="Value" context="#pop!SpacesEnd" />     </context>-    <context name="RemoveSpacesEnd" attribute="Comment" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">-      <DetectChar char="&end;" context="#pop" attribute="Variable" />++    <context name="SpacesEnd" attribute="Comment" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+      <DetectSpaces/>+      <DetectChar char=";" context="#pop" attribute="Variable" />     </context>    </contexts>
xml/nix.xml view
@@ -4,7 +4,7 @@ ]>  <!---    SPDX-FileCopyrightText: 2021 Marco Rebhan <me@dblsaiko.net>+    SPDX-FileCopyrightText: 2024 Marco Rebhan <me@dblsaiko.net>     SPDX-FileContributor: Tuan Le <webmaster@michivi.com>      SPDX-License-Identifier: MIT@@ -12,7 +12,7 @@  <language     name="Nix"-    version="2"+    version="4"     kateversion="5.79"     section="Scripts"     extensions="*.nix"@@ -73,10 +73,16 @@                 <RegExpr String="[a-zA-Z0-9-_.]*(/[a-zA-Z0-9-_.]+)+" attribute="Path" />                 <Float attribute="Float" />                 <Int attribute="Int" />+                <DetectChar char="." attribute="Symbol" context="Set Access" />                 <WordDetect String="true" attribute="Constant" />                 <WordDetect String="false" attribute="Constant" />                 <WordDetect String="null" attribute="Constant" />             </context>+            <context name="Set Access" attribute="Normal Text" lineEndContext="#stay">+                <Detect2Chars char="$" char1="{" attribute="Special Char" context="#pop!Interpolated String" />+                <DetectChar char="&quot;" attribute="String" context="#pop!String" />+                <DetectIdentifier context="#pop" />+            </context>             <context name="Parentheses" attribute="Normal Text" lineEndContext="#stay">                 <DetectChar char=")" attribute="Symbol" context="#pop" /> @@ -129,6 +135,7 @@                 <DetectChar char="=" attribute="Operator" context="Any Brace - Set Value" />                 <DetectChar char="&quot;" attribute="String" context="Any Brace - String" />                 <Detect2Chars char="'" char1="'" attribute="String" context="Any Brace - String2" />+                <Detect2Chars char="$" char1="{" attribute="Special Char" context="Any Brace - Interpolated String" />                  <DetectChar char="," attribute="Symbol" context="#pop!Set Expansion" />                 <DetectChar char="?" attribute="Symbol" context="Any Brace - Default Value" />@@ -146,11 +153,11 @@                 <DetectChar char=";" attribute="Symbol" context="#pop#pop!Set" />                 <IncludeRules context="Set Value" />             </context>-            <context name="Any Brace - String" attribute="Normal Text" lineEndContext="#stay">+            <context name="Any Brace - String" attribute="String" lineEndContext="#stay">                 <DetectChar char="&quot;" attribute="String" context="#pop#pop!Set" />                 <IncludeRules context="String" />             </context>-            <context name="Any Brace - String2" attribute="Normal Text" lineEndContext="#stay">+            <context name="Any Brace - String2" attribute="String" lineEndContext="#stay">                 <Detect2Chars char="'" char1="'" attribute="String" context="#pop#pop!Set" />                 <IncludeRules context="String" />             </context>@@ -158,6 +165,10 @@                 <DetectChar char=";" attribute="Symbol" context="#pop#pop!Set" />                 <IncludeRules context="Inherit" />             </context>+            <context name="Any Brace - Interpolated String" attribute="Normal Text">+                <DetectChar char="}" attribute="Special Char" context="#pop!Set" />+                <IncludeRules context="Interpolated String" />+            </context>             <context name="Any Brace - Default Value" attribute="Normal Text" lineEndContext="#stay">                 <DetectChar char="," attribute="Symbol" context="#pop#pop!Set Expansion" />                 <IncludeRules context="Default Value" />@@ -168,12 +179,23 @@                 <DetectChar char="&quot;" attribute="String" context="String" />                 <Detect2Chars char="'" char1="'" attribute="String" context="String2" />                 <DetectChar char="=" attribute="Operator" context="Set Value" />+                <Detect2Chars char="$" char1="{" attribute="Special Char" context="Interpolated String" />                 <RegExpr String="&ident;" attribute="Identifier" />                 <IncludeRules context="Comment Rules" />             </context>             <context name="Inherit" attribute="Normal Text" lineEndContext="#stay">-                <DetectChar char=";" attribute="Symbol" context="#pop" />-                <IncludeRules context="Single Expression" />+                <DetectChar char="(" attribute="Symbol" context="Inherit - Source" />+                <DetectIdentifier attribute="Identifier" context="Inherit - Keys" />+            </context>+            <context name="Inherit - Source" attribute="Normal Text" lineEndContext="#stay">+                <DetectChar char=")" attribute="Symbol" context="#pop!Inherit - Keys" />++                <IncludeRules context="Parentheses" />+            </context>+            <context name="Inherit - Keys" attribute="Normal Text" lineEndContext="#stay">+                <DetectChar char=";" attribute="Symbol" context="#pop#pop" />+                <DetectChar char="(" attribute="Error" />+                <DetectIdentifier attribute="Identifier" />             </context>              <context name="Set" attribute="Normal Text" lineEndContext="#stay">
+ xml/odin.xml view
@@ -0,0 +1,290 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE language+[+  <!ENTITY symbols ":!&#37;&amp;()+,-/.*&lt;=&gt;?[]|~^;">+  <!ENTITY bin_int "(?:[01]+(?:_[01]+)*)">+  <!ENTITY oct_int "(?:[0-7]+(?:_[0-7]+)*)">+  <!ENTITY dec_int "(?:[0-9]+(?:_[0-9]+)*)">+  <!ENTITY hex_int "(?:[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*)">+  <!ENTITY exp_float "(?:[eE][+-]?&dec_int;)">+  <!ENTITY exp_hexfloat "(?:[pP][-+]?&dec_int;)">+]>+<language name="Odin" section="Sources"+          version="7" kateversion="5.79"+          indenter="cstyle"+          extensions="*.odin"+          priority="1"+          author="Akseli Lahtinen (akselmo@akselmo.dev)"+          license="MIT">++  <highlighting>+    <list name="controlflow">+     <item>if</item>+     <item>else</item>+     <item>when</item>+     <item>for</item>+     <item>in</item>+     <item>not_in</item>+     <item>switch</item>+     <item>return</item>+     <item>do</item>+     <item>where</item>+     <item>fallthrough</item>+     <item>break</item>+     <item>continue</item>+     <item>or_else</item>+     <item>or_return</item>+     <item>or_break</item>+     <item>or_continue</item>+    </list>++    <list name="keywords">+      <item>const</item>+      <item>case</item>+      <item>defer</item>+      <item>asm</item>+      <item>distinct</item>+      <item>nil</item>+      <item>true</item>+      <item>false</item>+      <item>---</item>+      <item>struct</item>+      <item>enum</item>+      <item>union</item>+      <item>map</item>+      <item>bit_set</item>+      <item>dynamic</item>+      <item>cast</item>+      <item>transmute</item>+      <item>auto_cast</item>+      <item>force_inline</item>+      <item>force_no_inline</item>+      <item>size_of</item>+      <item>align_of</item>+      <item>offset_of</item>+      <item>type_of</item>+      <item>type_info_of</item>+      <item>typeid_of</item>+    </list>++    <list name="context">+      <item>context</item>+    </list>++    <list name="types">+      <item>i8</item>+      <item>i16</item>+      <item>i32</item>+      <item>i64</item>+      <item>i128</item>+      <item>int</item>+      <item>u8</item>+      <item>u16</item>+      <item>u32</item>+      <item>u64</item>+      <item>u128</item>+      <item>uint</item>+      <item>uintptr</item>+      <item>f16</item>+      <item>f32</item>+      <item>f64</item>+      <item>f16le</item>+      <item>f32le</item>+      <item>f64le</item>+      <item>f16be</item>+      <item>f32be</item>+      <item>f64be</item>+      <item>complex32</item>+      <item>complex64</item>+      <item>complex128</item>+      <item>complex_float</item>+      <item>complex_double</item>+      <item>quaternion64</item>+      <item>quaternion128</item>+      <item>quaternion256</item>+      <item>bool</item>+      <item>b8</item>+      <item>b16</item>+      <item>b32</item>+      <item>b64</item>+      <item>string</item>+      <item>cstring</item>+      <item>rune</item>+      <item>rawptr</item>+      <item>any</item>+      <item>typeid</item>+      <item>byte</item>+      <item>u16le</item>+      <item>u32le</item>+      <item>u64le</item>+      <item>u128le</item>+      <item>i16le</item>+      <item>i32le</item>+      <item>i64le</item>+      <item>i128le</item>+      <item>i16be</item>+      <item>i32be</item>+      <item>i64be</item>+      <item>i128be</item>+      <item>u16be</item>+      <item>u32be</item>+      <item>u64be</item>+      <item>u128be</item>+    </list>++    <list name="procedure">+      <item>proc</item>+    </list>++    <list name="import">+      <item>import</item>+      <item>package</item>+      <item>foreign</item>+    </list>++    <list name="attributes">+      <item>private</item>+      <item>require</item>+      <item>link_name</item>+      <item>link_prefix</item>+      <item>linkage</item>+      <item>default_calling_convention</item>+      <item>link_section</item>+      <item>extra_linker_flags</item>+      <item>deferred_in</item>+      <item>deferred_out</item>+      <item>deferred_in_out</item>+      <item>deferred_none</item>+      <item>deprecated</item>+      <item>require_results</item>+      <item>disabled</item>+      <item>init</item>+      <item>cold</item>+      <item>optimization_mode</item>+      <item>test</item>+      <item>static</item>+      <item>thread_local</item>+      <item>builtin</item>+      <item>objc_type</item>+      <item>objc_is_class_method</item>+      <item>require_target_feature</item>+      <item>enable_target_feature</item>+    </list>++    <contexts>+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal Text" >+        <Detect2Chars attribute="Comment" char="/" char1="/" context="SingleLineComment"/>+        <Detect2Chars attribute="Comment" context="MultiLineComment" char="/" char1="*" lookAhead="true" beginRegion="Comment1" />+        <Detect2Chars attribute="Operator" char=":" char1=":" context="#stay"/>+        <DetectChar attribute="String" context="DoubleQuoteString" char="&quot;"/>+        <DetectChar attribute="Character" context="Character" char="'"/>+        <keyword attribute="Control Flow" context="#stay" String="controlflow" />+        <keyword attribute="Keyword" context="#stay" String="keywords" />+        <keyword attribute="Data Type" context="#stay" String="types" />+        <keyword String="context" attribute="Context Variable" context="#stay"/>+        <DetectChar attribute="Attribute" context="AttributeContext" char='@' column="0"/>+        <AnyChar context="Number" String="0123456789" lookAhead="1" />+        <RegExpr attribute="Directive" context="#stay" String="\#\w+"/>+        <RegExpr attribute="Procedure" firstNonSpace="true" context="Procedure" String="\w{1,}\s{0,}::\s{0,}(?=proc)" lookAhead="true"/>+        <RegExpr attribute="Procedure" context="#stay" String="[A-Za-z_0-9]*\s*(?=\()" />+        <RegExpr attribute="Variable" context="#stay" firstNonSpace="true" String="\w{1,},{0,1}\s{0,}\w{0,}\s{0,}(?=:\=|:\s{0,}\w{1,}\s{0,}\=)(?!::)"/> <!--TODO this is too expensive-->+        <AnyChar attribute="Operator" context="#stay" String="&symbols;" />+        <DetectChar attribute="Operator" context="#stay" char="{" beginRegion="Brace1" />+        <DetectChar attribute="Operator" context="#stay" char="}" endRegion="Brace1" />+        <DetectChar attribute="RawString" context="RawString" char="`" />+        <keyword attribute="Use" context="#stay" String="import"/>+        <DetectIdentifier/>+      </context>++      <context name="SingleLineComment" attribute="Comment" lineEndContext="#pop">+        <IncludeRules context="##Comments" />+      </context>++      <context name="MultiLineComment" attribute="Comment" lineEndContext="#stay">+        <IncludeRules context="##Comments" />+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment1"/>+      </context>++      <context attribute="String" lineEndContext="#pop" name="DoubleQuoteString">+          <DetectChar context="EscapeChar" char="\" lookAhead="1"/>+          <DetectChar attribute="String" context="#pop" char="&quot;"/>+      </context>+      <context attribute="Character" lineEndContext="#pop" name="Character">+          <DetectChar context="EscapeChar" char="\" lookAhead="1"/>+          <DetectChar attribute="Character" context="#pop" char="'"/>+      </context>+      <context name="EscapeChar" attribute="String Char" lineEndContext="#pop">+          <RegExpr attribute="String Char" context="#pop" String="\\([nrt'&quot;\\]|x[0-9a-fA-F]{2}|[0-7]{3}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})"/>+      </context>++      <context name="RawString" attribute="RawString" lineEndContext="#stay">+          <DetectChar attribute="RawString" context="#pop" char="`" />+      </context>++      <context name="Procedure" attribute="Procedure" lineEndContext="#pop">+        <Detect2Chars attribute="Operator" char=":" char1=":" context="#stay"/>+        <WordDetect attribute="Keyword" context="#stay" String="proc" />+        <DetectChar attribute="String" context="SimpleDoubleQuoteString" char="&quot;"/> <!--e.g, "contextless" | "c" -->+        <AnyChar attribute="Symbol" context="#pop" lookAhead="true" String="\("/>+      </context>++      <context attribute="String" lineEndContext="#pop" name="SimpleDoubleQuoteString">+          <DetectChar attribute="String" context="#pop" char="&quot;"/>+      </context>++      <context name="AttributeContext" attribute="Normal Text" lineEndContext="#pop">+        <DetectChar attribute="Symbol" context="#stay" char='('/>+        <DetectSpaces />+        <keyword attribute="Attribute" context="#pop" String="attributes" />+      </context>++      <!-- Integer / Float -->+      <context name="Number" attribute="Normal Text" lineEndContext="#pop">+          <RegExpr attribute="Float" context="#pop!SuffixNumber" String="&dec_int;(\.&dec_int;&exp_float;?|&exp_float;)"/>+          <RegExpr attribute="Decimal" context="#pop!SuffixNumber" String="0(?=[^xob]|$)|(?=0[xob])|&dec_int;"/>+          <RegExpr attribute="Hex" context="#pop!SuffixNumber" String="0x&hex_int;"/>+          <RegExpr attribute="Octal" context="#pop!SuffixNumber" String="0o&oct_int;"/>+          <RegExpr attribute="Binary" context="#pop!SuffixNumber" String="0b&bin_int;"/>+          <DetectChar attribute="Decimal" context="#pop!SuffixNumber" char="0"/>+      </context>+      <context name="SuffixNumber" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">+          <DetectChar attribute="Symbol" char=':' context="#pop"/> <!-- in `[0:a]` -->+          <StringDetect attribute="Symbol" String=".." context="#pop"/> <!-- in `0..a` -->+          <AnyChar attribute="Error" String=".0123456789" context="#pop"/>+          <DetectIdentifier attribute="Error" context="#pop"/>+      </context>++    </contexts>+    <itemDatas>+      <itemData name="Normal Text"  defStyleNum="dsNormal" spellChecking="false"/>+      <itemData name="Variable" defStyleNum="dsVariable"/>+      <itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="false"/>+      <itemData name="Keyword"      defStyleNum="dsKeyword" spellChecking="false"/>+      <itemData name="Data Type"    defStyleNum="dsDataType" spellChecking="false"/>+      <itemData name="Attribute"       defStyleNum="dsAttribute"/>+      <itemData name="Directive"       defStyleNum="dsPreprocessor"/>+      <itemData name="Procedure"       defStyleNum="dsFunction"/>+      <itemData name="Operator"       defStyleNum="dsOperator"/>+      <itemData name="String"       defStyleNum="dsString"/>+      <itemData name="RawString"       defStyleNum="dsSpecialString"/>+      <itemData name="Comment"      defStyleNum="dsComment"/>+      <itemData name="Binary"       defStyleNum="dsBaseN"  spellChecking="false"/>+      <itemData name="Octal"        defStyleNum="dsBaseN"  spellChecking="false"/>+      <itemData name="Hex"          defStyleNum="dsBaseN"  spellChecking="false"/>+      <itemData name="Decimal"      defStyleNum="dsDecVal" spellChecking="false"/>+      <itemData name="Float"        defStyleNum="dsFloat"  spellChecking="false"/>+      <itemData name="Use"          defStyleNum="dsImport"/>+      <itemData name="Error"        defStyleNum="dsError" spellChecking="false"/>+      <itemData name="Context Variable" defStyleNum="dsKeyword" spellChecking="0"/>+      <itemData name="Symbol"       defStyleNum="dsOperator" spellChecking="false"/>+      <itemData name="String Char"  defStyleNum="dsSpecialChar"/>+      <itemData name="Character" defStyleNum="dsChar" spellChecking="false"/>+    </itemDatas>+  </highlighting>+  <general>+    <comments>+      <comment name="singleLine" start="//" position="afterwhitespace" />+      <comment name="multiLine" start="/*" end="*/" region="Comment"/>+    </comments>+  </general>+</language>
xml/orgmode.xml view
@@ -33,20 +33,33 @@  <!-- org syntax spec: https://orgmode.org/worg/dev/org-syntax.html --> <!-- syntax highlight: https://docs.kde.org/stable5/en/kate/katepart/highlight.html -->-<language name="Org Mode" version="4" kateversion="5.79" section="Markup" extensions="*.org" priority="15" author="Gary Wang" license="MIT">+<language name="Org Mode" version="8" kateversion="5.79" section="Markup" extensions="*.org" priority="15" author="Gary Wang" license="MIT">   <highlighting>     <list name="org-todo-keywords-todo">       <item>TODO</item>+      <item>NEXT</item>     </list>+    <list name="org-todo-keywords-doing">+      <item>DOING</item>+    </list>+    <list name="org-todo-keywords-waiting">+      <item>WAITING</item>+    </list>+    <list name="org-todo-keywords-canceled">+      <item>CANCELED</item>+      <item>CANCELLED</item>+    </list>     <list name="org-todo-keywords-done">       <item>DONE</item>     </list>     <contexts>       <context name="Normal Text" attribute="Normal Text" lineEndContext="#stay">+        <StringDetect String=":PROPERTIES:" attribute="Block" context="property-block" beginRegion="PropertiesBlock" lookAhead="true"/>         <DetectChar context="find-header" char="*" column="0" lookAhead="true"/>         <RegExpr attribute="List" context="list" String="^(\s*)&listbullet;(\s+)" column="0"/>         <RegExpr attribute="Number List" context="numlist" String="^(\s*)\d+(?:\.|\))(\s+)" column="0"/>         <RegExpr attribute="Comment" String="^(\s*)# .*" column="0"/>+        <StringDetect attribute="Block" context="find-src-block" String="#+BEGIN_SRC" beginRegion="RegionBlock" column="0"/>         <RegExpr attribute="Block" context="find-block" String="^#\+BEGIN(_\w+|:).*" beginRegion="RegionBlock" column="0"/>         <RegExpr attribute="Babel" String="^(\s*)#\+[A-Z]+(?:\[[A-Z]+\])?:.*" column="0"/>         <DetectChar context="find-bold-normal" char="*" lookAhead="true"/>@@ -60,12 +73,18 @@         <RegExpr attribute="Normal Text: Link" String="&implicitlink;"/>       </context>       <context name="find-header" attribute="Normal Text" lineEndContext="#pop">-        <RegExpr context="parse-header" String="^(?:\*){1,}\s+(?:([A-Z]+)\s+){0,1}(?:(\[#(?:[A-Z\d]+)\])\s+){0,1}(.*)\s*(\[[\d/%]+\]){0,1}\s*$" column="0" lookAhead="true"/>+        <RegExpr context="parse-header" String="^(?:\*){1,}\s+(?:([A-Z]+)\s+){0,1}(?:(\[#(?:[A-Z\d]+)\])\s+){0,1}(.*)\s*(\[[\d/%]+\]){0,1}\s*$" column="0" lookAhead="true" beginRegion="ItemBlock" endRegion="ItemBlock"/>       </context>+      <context name="property-block" attribute="Block" lineEndContext="#stay">+        <StringDetect String=":END:" attribute="Block" context="#pop" endRegion="PropertiesBlock" lookAhead="false"/>+      </context>       <context name="parse-header" attribute="Heading" lineEndContext="#pop">         <RegExpr attribute="Heading" String="(?:\*){1,}\s+" lookAhead="false"/>         <keyword String="org-todo-keywords-todo" attribute="Keyword Todo" context="#stay" />         <keyword String="org-todo-keywords-done" attribute="Keyword Done" context="#stay" />+        <keyword String="org-todo-keywords-doing" attribute="Keyword Doing" context="#stay" />+        <keyword String="org-todo-keywords-waiting" attribute="Keyword Waiting" context="#stay" />+        <keyword String="org-todo-keywords-canceled" attribute="Keyword Canceled" context="#stay" />         <RegExpr attribute="Cookie: Priority" String="\[#(?:[A-Z\d]+)\]" lookAhead="false"/>         <RegExpr attribute="Cookie: Statistics" String="\[[\d/%]+\]" lookAhead="false"/>       </context>@@ -80,6 +99,46 @@       <context name="find-block" attribute="Block" lineEndContext="#stay">         <StringDetect context="#pop" attribute="Block" String="#+END%1" dynamic="true" endRegion="RegionBlock" column="0"/>       </context>+      <!-- Source Code Syntax Highlighting Blocks -->+      <context name="find-src-block" attribute="Block" lineEndContext="#pop">+        <RegExpr attribute="Block" context="#pop!bash-code" String="\s*(?:bash(?:rc|_profile|_login|_logout)?|shell|sh|profile|PKGBUILD|APKBUILD|ebuild|eclass|nix)" insensitive="true"/>+        <RegExpr attribute="Block" context="#pop!zsh-code" String="\s*(?:zsh)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!cpp-code" String="\s*(?:[ch]pp|[ch]\+\+|[ch]xx|h?cc|hh|cuh?|ino|pde|moc)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!csharp-code" String="\s*(?:cs|csharp|c\#)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!cmake-code" String="\s*(?:cmake|CMakeLists(?:\.txt)?)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!css-code" String="\s*css" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!c-code" String="\s*[ch]" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!doxygen-code" String="\s*doxygen" insensitive="true" beginRegion="code-block"/> <!-- Block comment of Doxygen -->+        <RegExpr attribute="Block" context="#pop!email-code" String="\s*(?:email|emlx?|mbo?x)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!go-code" String="\s*go(?:lang)?" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!hamlet-code" String="\s*[wxs]?hamlet" insensitive="true" beginRegion="code-block"/> <!-- Included in the Haskell definition -->+        <RegExpr attribute="Block" context="#pop!haskell-code" String="\s*(?:haskell|c?hs|hs\-boot)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!html-code" String="\s*(?:[sx]?html?|inc|tmpl|tpl)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!java-code" String="\s*(?:java|bsh)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!javascript-code" String="\s*(?:javascript|m?js|es6|kwinscript|julius)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!jsx-code" String="\s*(?:jsx|tsx|(?:java|type)script\-react)" insensitive="true" beginRegion="code-block"/> <!-- Included in the HTML definition. Also apply for TSX. -->+        <RegExpr attribute="Block" context="#pop!json-code" String="\s*(?:json5?|gltf)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!yaml-code" String="\s*(?:ya?ml)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!matlab-code" String="\s*matlab" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!markdown-code" String="\s*(?:markdown|m?md)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!mustache-code" String="\s*(?:handlebars|hbs|mustache|mst|ractive|hogan|hulk)" insensitive="true" beginRegion="code-block"/> <!-- Included in the HTML definition -->+        <RegExpr attribute="Block" context="#pop!perl-code" String="\s*(?:perl|p[lm]|pod|psgi|vcl)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!php-code" String="\s*(?:php[3457t]?|wml|phtml?|aw|ctp)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!python-code" String="\s*(?:python[23]?|py[23w]?|[rc]py|sconstruct|gypi?)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!qml-code" String="\s*qml(?:types)?" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!r-code" String="\s*(?:r|rprofile|rscript).?\n" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!raku-code" String="\s*(?:raku(?:mod|doc|test)?|perl6|p[lm]?6|pod6|nqp)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!rest-code" String="\s*(?:rst|rest|restructuredtext)" insensitive="true" beginRegion="code-block"/> <!-- Included in the CMake definition -->+        <RegExpr attribute="Block" context="#pop!rust-code" String="\s*(?:rust|rs)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!ruby-code" String="\s*(?:ruby|rbx?|rjs|rake|f?cgi|gemspec|irbrc|ru|prawn|Appraisals|(?:Rake|Cap|Chef|Gem|Guard|Hobo|Vagrant||Rant|Berks|Thor|Puppet)file|rxml)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!rhtml-code" String="\s*(?:xml\.|js\.)?erb" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!mysql-code" String="\s*(?:mysql|sql|ddl)" insensitive="true" beginRegion="code-block"/> <!-- Included in the PHP definition -->+        <RegExpr attribute="Block" context="#pop!nim-code" String="\s*(?:nims?)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!typescript-code" String="\s*(?:typescript|ts)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!xml-code" String="\s*(?:xml|xsd|xspf|tld|jsp|c?pt|dtml|rss|opml|svg|daml|rdf|ui|kcfg|qrc|wsdl|scxml|xbel|dae|sch|brd|docbook)" insensitive="true" beginRegion="code-block"/>+        <RegExpr attribute="Block" context="#pop!odin-code" String="\s*(?:odin)" insensitive="true" beginRegion="code-block"/>+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+      </context>       <context name="find-bold-normal" attribute="Normal Text" lineEndContext="#pop">         <RegExpr attribute="Bold Text" context="#pop" minimal="true" String="&bold_regex;"/>         <DetectChar attribute="Normal Text" context="#pop" char="*"/>@@ -114,6 +173,153 @@         <RegExpr attribute="Code" context="#pop" minimal="true" String="&inlinecode_regex;"/>         <DetectChar attribute="Normal Text" context="#pop" char="~"/>       </context>++      <!-- Source Code Syntax Highlighting -->+      <context attribute="Normal Text" lineEndContext="#stay" name="bash-code" fallthroughContext="Command##Bash">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##Bash" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="zsh-code" fallthroughContext="Command##Zsh">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##Zsh" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##CMake" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="c-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##C" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="cpp-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##C++" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="csharp-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##C#" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="css-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##CSS" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="doxygen-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="BlockComment##Doxygen" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="email-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##Email" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="go-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##Go" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="hamlet-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##Hamlet" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="haskell-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##Haskell" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="html-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##HTML" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="java-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##Java" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="javascript-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="Normal##JavaScript" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="jsx-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="Normal##JavaScript React (JSX)" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="json-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##JSON" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="yaml-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##YAML" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="markdown-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="Normal Text##Markdown"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="matlab-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##Matlab" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="mustache-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##Mustache/Handlebars (HTML)" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="perl-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##Perl" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="php-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="phpsource##PHP/PHP" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="python-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##Python" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="qml-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="Normal##QML" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="r-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##R Script" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="raku-code" fallthroughContext="term##Raku">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="base##Raku" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="rest-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##reStructuredText" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="ruby-code" fallthroughContext="Expr##Ruby">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="Ruby##Ruby" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="rhtml-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##Ruby/Rails/RHTML" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="rust-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##Rust" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="mysql-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##SQL (MySQL)" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="nim-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##Nim" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="typescript-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="Normal##TypeScript" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="xml-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##XML" includeAttrib="true"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="odin-code">+        <StringDetect context="#pop" attribute="Block" String="#+END_SRC" endRegion="RegionBlock" column="0"/>+        <IncludeRules context="##Odin" includeAttrib="true"/>+      </context>+     </contexts>     <itemDatas>       <itemData name="Normal Text" defStyleNum="dsNormal"/>@@ -124,6 +330,9 @@       <itemData name="Strikethrough Text" defStyleNum="dsNormal" strikeOut="true"/>       <itemData name="Keyword Done" defStyleNum="dsInformation" spellChecking="false"/>       <itemData name="Keyword Todo" defStyleNum="dsAlert" spellChecking="false"/>+      <itemData name="Keyword Doing" defStyleNum="dsControlFlow" spellChecking="false"/>+      <itemData name="Keyword Waiting" defStyleNum="dsOthers" spellChecking="false"/>+      <itemData name="Keyword Canceled" defStyleNum="dsError" spellChecking="false"/>       <itemData name="Cookie: Priority" defStyleNum="dsInformation" spellChecking="false"/>       <itemData name="Cookie: Statistics" defStyleNum="dsInformation" spellChecking="false"/>       <itemData name="Heading" defStyleNum="dsFunction"/>
xml/php.xml view
@@ -77,7 +77,7 @@   <!ENTITY float "\b&LNUM;(\.(&LNUM;)?(&EXPONENT;)?|&EXPONENT;)|\.&LNUM;(&EXPONENT;)?"> ]> -<language name="PHP/PHP" indenter="cstyle" version="27" kateversion="5.79" section="Scripts" extensions="" priority="5" mimetype="" hidden="true">+<language name="PHP/PHP" indenter="cstyle" version="28" kateversion="5.79" section="Scripts" extensions="" priority="5" mimetype="" hidden="true">   <highlighting>     <!-- https://php.watch/versions -->     <!-- Based on 8.3 (https://php.watch/versions/8.3 and https://stitcher.io/blog/new-in-php-83) -->@@ -11291,7 +11291,7 @@       <context name="doublequotestringescaped" attribute="String" lineEndContext="#stay">         <!-- Common rules for double quoted strings and backticks (execution operator) URL:               https://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.double -->-        <RegExpr attribute="Backslash Code" context="#pop" String="\\([\\nrtvef$&quot;]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u\{[0-9A-Fa-f]+\})"/>+        <RegExpr attribute="Backslash Code" context="#pop" String="\\([\\nrtvef$&quot;{]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u\{[0-9A-Fa-f]+\})"/>         <DetectChar attribute="String" context="#pop" char="\"/>       </context> 
xml/python.xml view
@@ -38,882 +38,2238 @@ 	<!ENTITY rawString "(?:ru|u?r|)(?:'(?:[^']++|\\')*+'|&quot;(?:[^&quot;]++|\\&quot;)*+&quot;)"> 	<!ENTITY formatString "(?:r?f|fr?)(?:'(?:[^'{]++|\\'|\{\{|\{[^}]++\})*+'|&quot;(?:[^&quot;]++|\\&quot;|\{\{|\{[^}]*+\})*+&quot;)"> 	<!ENTITY string "&rawString;|&formatString;">-]>-<!-- Python syntax highlightning v0.9 by Per Wigren -->-<!-- Python syntax highlighting v1.9 by Michael Bueker (improved keyword differentiation) -->-<!-- Python syntax highlighting v1.97 by Paul Giannaros -->-<!-- Python syntax highlighting v1.99 by Primoz Anzur -->-<!-- Python syntax highlighting v2.01 by Paul Giannaros:-	* full format character support-	* unicode string modifier supported -->-<!-- v2.02 remove RegExpr for nums and make indent consistent -->-<!-- v2.03 highlight decorators, remove operator regex, don't highlight parens as operators -->-<!-- v2.04 make alerts visible even if they are directly after ''' or # without a space -->-<!-- v2.06 decorator names can (and often do) contain periods -->-<!-- v2.07 add support for %prog and co, see bug 142832 -->-<!-- v2.08 add missing overloaders, new Python 3 statements, builtins, and keywords -->-<!-- v2.29 recognize escape sequenzes correctly -->-<language name="Python" alternativeNames="Py" version="28" style="python" indenter="python" kateversion="5.0" section="Scripts" extensions="*.py;*.pyw;*.pyi;SConstruct;SConscript;*.FCMacro" mimetype="application/x-python;text/x-python;text/x-python3" casesensitive="1" author="Michael Bueker" license="">-	<highlighting>-		<list name="import">-			<item>import</item>-			<item>from</item>-			<item>as</item>-		</list>-		<list name="defs">-			<item>class</item>-			<item>def</item>-			<item>del</item>-			<item>global</item>-			<item>lambda</item>-			<item>nonlocal</item>-		</list>-		<list name="operators">-			<item>and</item>-			<item>in</item>-			<item>is</item>-			<item>not</item>-			<item>or</item>-		</list>-		<list name="flow">-			<item>assert</item>-			<item>break</item>-			<item>continue</item>-			<item>elif</item>-			<item>else</item>-			<item>except</item>-			<item>finally</item>-			<item>for</item>-			<item>if</item>-			<item>pass</item>-			<item>raise</item>-			<item>return</item>-			<item>try</item>-			<item>while</item>-			<item>with</item>-			<item>async</item>-			<item>await</item>-		</list>-		<list name="flow_yield">-			<item>yield</item>-			<!---				"yield from" added here as a keyword for autocompletion. The actual handling-				is in context="yield" so that we won't need to add space as a weakDeliminator.-			-->-			<item>yield from</item>-		</list>-		<list name="patternmatching">-			<item>match</item>-			<item>case</item>-		</list>-		<list name="builtinfuncs">-			<!-- https://docs.python.org/3.11/library/functions.html#built-in-funcs -->-			<item>__import__</item>-			<item>abs</item>-			<item>aiter</item>-			<item>all</item>-			<item>anext</item>-			<item>any</item>-			<item>apply</item>-			<item>ascii</item>-			<item>basestring</item>-			<item>bin</item>-			<item>breakpoint</item>-			<item>bool</item>-			<item>buffer</item>-			<item>bytearray</item>-			<item>bytes</item>-			<item>callable</item>-			<item>chr</item>-			<item>classmethod</item>-			<item>cmp</item>-			<item>coerce</item>-			<item>compile</item>-			<item>complex</item>-			<item>delattr</item>-			<item>dict</item>-			<item>dir</item>-			<item>divmod</item>-			<item>enumerate</item>-			<item>eval</item>-			<item>exec</item>-			<item>execfile</item>-			<item>file</item>-			<item>filter</item>-			<item>float</item>-			<item>format</item>-			<item>frozenset</item>-			<item>getattr</item>-			<item>globals</item>-			<item>hasattr</item>-			<item>hash</item>-			<item>help</item>-			<item>hex</item>-			<item>id</item>-			<item>input</item>-			<item>int</item>-			<item>intern</item>-			<item>isinstance</item>-			<item>issubclass</item>-			<item>iter</item>-			<item>len</item>-			<item>list</item>-			<item>locals</item>-			<item>long</item>-			<item>map</item>-			<item>max</item>-			<item>memoryview</item>-			<item>min</item>-			<item>next</item>-			<item>object</item>-			<item>oct</item>-			<item>open</item>-			<item>ord</item>-			<item>pow</item>-			<item>print</item>-			<item>property</item>-			<item>range</item>-			<item>raw_input</item>-			<item>reduce</item>-			<item>reload</item>-			<item>repr</item>-			<item>reversed</item>-			<item>round</item>-			<item>set</item>-			<item>setattr</item>-			<item>slice</item>-			<item>sorted</item>-			<item>staticmethod</item>-			<item>str</item>-			<item>sum</item>-			<item>super</item>-			<item>tuple</item>-			<item>type</item>-			<item>unichr</item>-			<item>unicode</item>-			<item>vars</item>-			<item>xrange</item>-			<item>zip</item>-		</list>-		<list name="specialvars">-			<item>None</item>-			<item>self</item>-			<item>True</item>-			<item>False</item>-			<item>NotImplemented</item>-			<item>Ellipsis</item>-			<item>__debug__</item>-			<item>__file__</item>-			<item>__name__</item>-			<item>__qualname__</item>-		</list>-		<list name="bindings">-			<item>SIGNAL</item>-			<item>SLOT</item>-			<item>connect</item>-		</list>-		<list name="overloaders">-			<!-- https://docs.python.org/3.10/reference/datamodel.html#special-method-names -->-			<item>__new__</item>-			<item>__init__</item>-			<item>__del__</item>-			<item>__repr__</item>-			<item>__str__</item>-			<item>__lt__</item>-			<item>__le__</item>-			<item>__eq__</item>-			<item>__ne__</item>-			<item>__gt__</item>-			<item>__ge__</item>-			<item>__cmp__</item>-			<item>__rcmp__</item>-			<item>__hash__</item>-			<item>__bool__</item>-			<item>__nonzero__</item>-			<item>__unicode__</item>-			<item>__getattr__</item>-			<item>__setattr__</item>-			<item>__delattr__</item>-			<item>__getattribute__</item>-			<item>__get__</item>-			<item>__set__</item>-			<item>__delete__</item>-			<item>__call__</item>-			<item>__len__</item>-			<item>__length_hint__</item>-			<item>__getitem__</item>-			<item>__setitem__</item>-			<item>__delitem__</item>-			<item>__missing__</item>-			<item>__iter__</item>-			<item>__reversed__</item>-			<item>__contains__</item>-			<item>__getslice__</item>-			<item>__setslice__</item>-			<item>__delslice__</item>-			<item>__add__</item>-			<item>__sub__</item>-			<item>__mul__</item>-			<item>__matmul__</item>-			<item>__floordiv__</item>-			<item>__mod__</item>-			<item>__divmod__</item>-			<item>__pow__</item>-			<item>__lshift__</item>-			<item>__rshift__</item>-			<item>__and__</item>-			<item>__xor__</item>-			<item>__or__</item>-			<item>__div__</item>-			<item>__truediv__</item>-			<item>__radd__</item>-			<item>__rsub__</item>-			<item>__rmul__</item>-			<item>__rmatmul__</item>-			<item>__rdiv__</item>-			<item>__rtruediv__</item>-			<item>__rfloordiv__</item>-			<item>__rmod__</item>-			<item>__rdivmod__</item>-			<item>__rpow__</item>-			<item>__rlshift__</item>-			<item>__rrshift__</item>-			<item>__rand__</item>-			<item>__rxor__</item>-			<item>__ror__</item>-			<item>__iadd__</item>-			<item>__isub__</item>-			<item>__imul__</item>-			<item>__imatmul__</item>-			<item>__idiv__</item>-			<item>__itruediv__</item>-			<item>__ifloordiv__</item>-			<item>__imod__</item>-			<item>__ipow__</item>-			<item>__ilshift__</item>-			<item>__irshift__</item>-			<item>__iand__</item>-			<item>__ixor__</item>-			<item>__ior__</item>-			<item>__neg__</item>-			<item>__pos__</item>-			<item>__abs__</item>-			<item>__invert__</item>-			<item>__complex__</item>-			<item>__int__</item>-			<item>__long__</item>-			<item>__float__</item>-			<item>__oct__</item>-			<item>__hex__</item>-			<item>__index__</item>-			<item>__round__</item>-			<item>__trunc__</item>-			<item>__floor__</item>-			<item>__ceil__</item>-			<item>__coerce__</item>-			<item>__enter__</item>-			<item>__exit__</item>-			<item>__match_args__</item>-			<item>__buffer__</item>-			<item>__release_buffer__</item>-			<item>__bytes__</item>-			<item>__format__</item>-			<item>__next__</item>-			<item>__dir__</item>-			<item>__await__</item>-			<item>__aiter__</item>-			<item>__anext__</item>-			<item>__aenter__</item>-			<item>__aexit__</item>-			<item>__slots__</item>-			<item>__init_subclass__</item>-			<item>__set_name__</item>-			<item>__prepare__</item>-			<item>__instancecheck__</item>-			<item>__subclasscheck__</item>-			<item>__class_getitem__</item>-		</list>-		<list name="exceptions">-			<!---				Exceptions list resources used:-				- http://docs.python.org/2.7/library/exceptions.html#exception-hierarchy-				- http://docs.python.org/3.10/library/exceptions.html#exception-hierarchy-			-->-			<item>ArithmeticError</item>-			<item>AssertionError</item>-			<item>AttributeError</item>-			<item>BaseException</item>-			<item>BlockingIOError</item>-			<item>BrokenPipeError</item>-			<item>BufferError</item>-			<item>BytesWarning</item>-			<item>ChildProcessError</item>-			<item>ConnectionAbortedError</item>-			<item>ConnectionError</item>-			<item>ConnectionRefusedError</item>-			<item>ConnectionResetError</item>-			<item>DeprecationWarning</item>-			<item>EnvironmentError</item>-			<item>EOFError</item>-			<item>EncodingWarning</item>-			<item>Exception</item>-			<item>FileExistsError</item>-			<item>FileNotFoundError</item>-			<item>FloatingPointError</item>-			<item>FutureWarning</item>-			<item>GeneratorExit</item>-			<item>ImportError</item>-			<item>ImportWarning</item>-			<item>IndentationError</item>-			<item>IndexError</item>-			<item>InterruptedError</item>-			<item>IOError</item>-			<item>IsADirectoryError</item>-			<item>KeyboardInterrupt</item>-			<item>KeyError</item>-			<item>LookupError</item>-			<item>MemoryError</item>-			<item>ModuleNotFoundError</item>-			<item>NameError</item>-			<item>NotADirectoryError</item>-			<item>NotImplementedError</item>-			<item>OSError</item>-			<item>OverflowError</item>-			<item>PendingDeprecationWarning</item>-			<item>PermissionError</item>-			<item>ProcessLookupError</item>-			<item>RecursionError</item>-			<item>ReferenceError</item>-			<item>ResourceWarning</item>-			<item>RuntimeError</item>-			<item>RuntimeWarning</item>-			<item>StandardError</item>-			<item>StopAsyncIteration</item>-			<item>StopIteration</item>-			<item>SyntaxError</item>-			<item>SyntaxWarning</item>-			<item>SystemError</item>-			<item>SystemExit</item>-			<item>TabError</item>-			<item>TimeoutError</item>-			<item>TypeError</item>-			<item>UnboundLocalError</item>-			<item>UnicodeDecodeError</item>-			<item>UnicodeEncodeError</item>-			<item>UnicodeError</item>-			<item>UnicodeTranslateError</item>-			<item>UnicodeWarning</item>-			<item>UserWarning</item>-			<item>ValueError</item>-			<item>Warning</item>-			<item>WindowsError</item>-			<item>ZeroDivisionError</item>-		</list>-		<contexts>-			<context name="Normal" attribute="Normal Text" lineEndContext="#stay">-				<DetectSpaces attribute="Normal Text"/>--				<DetectChar attribute="Normal Text" char="(" context="Tuple" beginRegion="Tuple"/>-				<DetectChar attribute="Normal Text" char="[" context="List" beginRegion="List"/>-				<DetectChar attribute="Normal Text" char="{" context="Dictionary" beginRegion="Dictionary"/>--				<DetectChar attribute="Comment" char="#" context="Hash comment"/>--				<keyword attribute="Special Variable" String="specialvars" context="#stay"/>-				<keyword attribute="Flow Control Keyword" String="flow" context="#stay"/>-				<keyword attribute="Operator Keyword" String="operators" context="#stay"/>-				<keyword attribute="Builtin Function" String="builtinfuncs" context="#stay"/>-				<keyword attribute="Definition Keyword" String="defs" context="#stay"/>-				<keyword attribute="Flow Control Keyword" String="flow_yield" context="yield"/>-				<keyword attribute="Flow Control Keyword" String="patternmatching" context="Pattern Matching" lookAhead="1" firstNonSpace="1"/>-				<keyword attribute="Import" String="import" context="#stay"/>-				<keyword attribute="Exceptions" String="exceptions" context="#stay"/>-				<keyword attribute="Overloaders" String="overloaders" context="#stay"/>-				<keyword attribute="Extensions" String="bindings" context="#stay"/>--				<IncludeRules context="Number" />-				<IncludeRules context="CommentVariants" />-				<IncludeRules context="StringVariants" />--				<DetectIdentifier attribute="Normal Text"/>--				<RegExpr attribute="Decorator" String="@[_a-zA-Z[:^ascii:]][\._a-zA-Z0-9[:^ascii:]]*" firstNonSpace="true"/>-				<Detect2Chars attribute="Operator" char=":" char1="=" context="#stay"/>-				<AnyChar attribute="Operator" String="+*/%|=;&lt;&gt;!^&amp;~-@" context="#stay"/>--				<LineContinue attribute="Operator" context="MultiLineExpr"/>--				<Int attribute="Error"/>-			</context>-			<context name="MultiLineExpr" attribute="Normal Text" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">-				<DetectSpaces attribute="Normal Text"/>-				<IncludeRules context="StringVariants" />-			</context>--			<!-- https://docs.python.org/2/reference/lexical_analysis.html#integer-and-long-integer-literals -->-			<!-- https://docs.python.org/3/reference/lexical_analysis.html#integer-literals -->-			<context name="Number" attribute="Normal Text" lineEndContext="#pop">-				<!-- fast path -->-				<RegExpr String="&beforeDigit;[0-9]|&beforePointFloat;\.[0-9]" context="AssumeNumber" lookAhead="1"/>-			</context>-			<context name="AssumeNumber" attribute="Normal Text" lineEndContext="#pop">-				<!-- Complex: 1j ; 1.1j ; 1.j ; .1j ; 1e3j ; 1.1e3j ; 1.e3j ; .1e3j -->-				<RegExpr attribute="Complex" String="(?:&digitPart;(?:\.(?:&digitPart;)?)?|&beforePointFloat;\.&digitPart;)(?:[eE][\+\-]?&digitPart;)?[jJ]" context="CheckSuffixError"/>-				<!-- Hexadecimal: 0xA1, Binary: 0b01, Octal: 0o71 -->-				<RegExpr attribute="Hex" String="0[xX](?:_?[0-9a-fA-F])+" context="CheckSuffixError"/>-				<RegExpr attribute="Binary" String="0[bB](?:_?[01])+" context="CheckSuffixError"/>-				<RegExpr attribute="Octal" String="0[oO](?:_?[0-7])+" context="CheckSuffixError"/>-				<!-- Float: 1.1 ; 1. ; .1 ; 1e3 ; 1.1e3 ; 1.e3 ; .1e3 -->-				<RegExpr attribute="Float" String="(?:&digitPart;(?:\.(?:&digitPart;)?)?|\.&digitPart;)[eE][\+\-]?&digitPart;|&digitPart;\.(?:&digitPart;)?|\.&digitPart;" context="CheckSuffixError"/>-				<!-- Decimal: 123 ; 000 -->-				<!-- l and L are python2 suffixes -->-				<RegExpr attribute="Int" String="(?:[1-9](?:_?\d)*|0(?:_?0)*)[lL]?" context="CheckSuffixError"/>-			</context>-			<context name="CheckSuffixError" attribute="Normal Text" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop">-				<RegExpr attribute="Error" String="[\w\d]+" context="#pop#pop"/>-			</context>--			<context name="yield" attribute="Flow Control Keyword" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">-				<DetectSpaces attribute="Normal Text" context="#stay"/>-				<WordDetect attribute="Flow Control Keyword" context="#pop" String="from"/>-			</context>--			<context name="Pattern Matching" attribute="Flow Control Keyword" lineEndContext="#pop">-				<!---					Python 3.10: https://docs.python.org/3.10/reference/compound_stmts.html#the-match-statement-					( 'match' | 'case' ) expression ':'-					exclude:-					( 'match' | 'case' ) ( 'if' | 'for' | '.' | ':' | '=' | ',' | ']' | ')' ) ...-				-->-				<RegExpr attribute="Flow Control Keyword" String="\w++(?=\s+(?!(?:if|for)\b)[\w'&quot;~]|\s*+(?![.:=\]),]|(?:if|for)\b)((?:&string;|[^#;(){}]|\(\)|\((?1)\)|\{\}|\{(\s*+(?:(?:&string;|[a-zA-Z0-9.]++)\s*+:\s*+(?:&string;|[^#;(){},]|\(\)|\((?1)\)|\{\}|\{(?2)\})++,?)*+)\})+?):)|" context="#pop"/>-				<DetectIdentifier attribute="Normal Text" context="#pop"/>-			</context>--			<context name="#CheckForString" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">-				<DetectSpaces/>-				<LineContinue attribute="Normal Text" context="#pop!CheckForStringNext"/>-			</context>--			<context name="CheckForStringNext" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">-				<DetectSpaces/>-				<LineContinue attribute="Normal Text" context="#stay"/>-				<IncludeRules context="StringVariants"/>-			</context>--			<!-- https://docs.python.org/2/reference/lexical_analysis.html#string-literals -->-			<!-- https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals -->-			<context name="StringVariants" attribute="Normal Text" lineEndContext="#stay">-				<!-- fast path -->-				<RegExpr String="(?:u|r|b|f|ur|fr|rf|br|rb)?['&quot;]" insensitive="true" context="AssumeStringVariants" lookAhead="1"/>-			</context>-			<context name="AssumeStringVariants" attribute="Normal Text" lineEndContext="#stay">-				<RegExpr attribute="String" String="u?'''"                insensitive="true" context="#pop!Triple A-string" beginRegion="Triple A-region"/>-				<RegExpr attribute="String" String="u?&quot;&quot;&quot;" insensitive="true" context="#pop!Triple Q-string" beginRegion="Triple Q-region"/>-				<RegExpr attribute="String" String="u?'"                  insensitive="true" context="#pop!Single A-string"/>-				<RegExpr attribute="String" String="u?&quot;"             insensitive="true" context="#pop!Single Q-string"/>--				<StringDetect attribute="F-String" String="f'''"                insensitive="true" context="#pop!Triple A-F-String" beginRegion="Triple A-region"/>-				<StringDetect attribute="F-String" String="f&quot;&quot;&quot;" insensitive="true" context="#pop!Triple Q-F-String" beginRegion="Triple Q-region"/>-				<StringDetect attribute="F-String" String="f'"                  insensitive="true" context="#pop!Single A-F-String"/>-				<StringDetect attribute="F-String" String="f&quot;"             insensitive="true" context="#pop!Single Q-F-String"/>--				<RegExpr attribute="Raw String" String="u?r'''"                insensitive="true" context="#pop!Raw Triple A-string" beginRegion="Triple A-region"/>-				<RegExpr attribute="Raw String" String="u?r&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-string" beginRegion="Triple Q-region"/>-				<RegExpr attribute="Raw String" String="u?r'"                  insensitive="true" context="#pop!Raw A-string"/>-				<RegExpr attribute="Raw String" String="u?r&quot;"             insensitive="true" context="#pop!Raw Q-string"/>--				<RegExpr attribute="Raw F-String" String="(?:fr|rf)'''"                insensitive="true" context="#pop!Raw Triple A-F-String" beginRegion="Triple A-region"/>-				<RegExpr attribute="Raw F-String" String="(?:fr|rf)&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-F-String" beginRegion="Triple Q-region"/>-				<RegExpr attribute="Raw F-String" String="(?:fr|rf)'"                  insensitive="true" context="#pop!Raw A-F-String"/>-				<RegExpr attribute="Raw F-String" String="(?:fr|rf)&quot;"             insensitive="true" context="#pop!Raw Q-F-String"/>--				<StringDetect attribute="B-String" String="b'''"                insensitive="true" context="#pop!Triple A-B-String" beginRegion="Triple A-region"/>-				<StringDetect attribute="B-String" String="b&quot;&quot;&quot;" insensitive="true" context="#pop!Triple Q-B-String" beginRegion="Triple Q-region"/>-				<StringDetect attribute="B-String" String="b'"                  insensitive="true" context="#pop!Single A-B-String"/>-				<StringDetect attribute="B-String" String="b&quot;"             insensitive="true" context="#pop!Single Q-B-String"/>--				<RegExpr attribute="Raw B-String" String="(?:br|rb)'''"                insensitive="true" context="#pop!Raw Triple A-B-String" beginRegion="Triple A-region"/>-				<RegExpr attribute="Raw B-String" String="(?:br|rb)&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-B-String" beginRegion="Triple Q-region"/>-				<RegExpr attribute="Raw B-String" String="(?:br|rb)'"                  insensitive="true" context="#pop!Raw A-B-String"/>-				<RegExpr attribute="Raw B-String" String="(?:br|rb)&quot;"             insensitive="true" context="#pop!Raw Q-B-String"/>-			</context>--			<!-- https://docs.python.org/2/reference/lexical_analysis.html#string-literals -->-			<!-- https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals -->-			<context name="CommentVariants" attribute="Normal Text" lineEndContext="#stay">-				<!-- fast path -->-				<RegExpr String="(?:u|r|ur)?['&quot;]" insensitive="true" firstNonSpace="true" context="AssumeCommentVariants" lookAhead="1"/>-			</context>-			<context name="AssumeCommentVariants" attribute="Normal Text" lineEndContext="#stay">-				<RegExpr attribute="Comment" String="(?:u?r?)'''"                insensitive="true" context="#pop!Triple A-comment" beginRegion="Triple A-region"/>-				<RegExpr attribute="Comment" String="(?:u?r?)&quot;&quot;&quot;" insensitive="true" context="#pop!Triple Q-comment" beginRegion="Triple Q-region"/>-				<RegExpr attribute="Comment" String="(?:u?r?)'"                  insensitive="true" context="#pop!Single A-comment"/>-				<RegExpr attribute="Comment" String="(?:u?r?)&quot;"             insensitive="true" context="#pop!Single Q-comment"/>-			</context>--			<context name="Dictionary" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true">-				<DetectSpaces/>-				<DetectChar attribute="Normal Text" char="}" context="#pop" endRegion="Dictionary"/>-				<IncludeRules context="StringVariants" />-				<IncludeRules context="Normal" />-			</context>--			<context name="List" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true">-				<DetectSpaces/>-				<DetectChar attribute="Normal Text" char="]" context="#pop" endRegion="List"/>-				<IncludeRules context="StringVariants" />-				<IncludeRules context="Normal" />-			</context>--			<context name="Tuple" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true">-				<DetectSpaces/>-				<DetectChar attribute="Normal Text" char=")" context="#pop" endRegion="Tuple"/>-				<IncludeRules context="StringVariants" />-				<IncludeRules context="Normal" />-			</context>--			<context name="UnfinishedStringError" attribute="Error" lineEndContext="#stay" noIndentationBasedFolding="true">-				<!-- A single string/comment reached the end of the line without a \ line escape -->-				<!-- We set the following line (or part of it) to the "Error" attribute so that this error is easier to spot -->-				<RegExpr attribute="Error" String="^(\s{4,}|[^[\]()&quot;']{4,}([&quot;'].*)?)" context="#pop" column="0"/>-			</context>--			<!-- Comments -->--			<context name="Hash comment" attribute="Comment" lineEndContext="#pop">-				<DetectSpaces />-				<IncludeRules context="##Comments" />-				<DetectIdentifier/>-			</context>--			<context name="Triple A-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">-				<DetectSpaces/>-				<StringDetect attribute="Comment" String="'''" context="#pop" endRegion="Triple A-region"/>-				<IncludeRules context="##Comments" />-				<DetectIdentifier/>-				<IncludeRules context="stringescape"/>-				<LineContinue attribute="String Char" context="#stay"/>-			</context>--			<context name="Triple Q-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">-				<DetectSpaces/>-				<StringDetect attribute="Comment" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>-				<IncludeRules context="##Comments" />-				<DetectIdentifier/>-				<IncludeRules context="stringescape"/>-				<LineContinue attribute="String Char" context="#stay"/>-			</context>--			<context name="Single A-comment" attribute="Comment" lineEndContext="#pop!UnfinishedStringError">-				<DetectSpaces/>-				<DetectChar attribute="Comment" char="'" context="#pop"/>-				<IncludeRules context="##Comments" />-				<DetectIdentifier/>-				<IncludeRules context="stringescape"/>-				<LineContinue attribute="String Char" context="#stay"/>-			</context>--			<context name="Single Q-comment" attribute="Comment" lineEndContext="#pop!UnfinishedStringError">-				<DetectSpaces/>-				<DetectChar attribute="Comment" char="&quot;" context="#pop"/>-				<IncludeRules context="##Comments" />-				<DetectIdentifier/>-				<IncludeRules context="stringescape"/>-				<LineContinue attribute="String Char" context="#stay"/>-			</context>--			<!-- Strings -->--			<!-- format characters -->-			<context name="stringformat" attribute="String Substitution" lineEndContext="#stay">-				<RegExpr attribute="String Substitution" String="&strsubstitution_py2;|&strsubstitution_py3;" context="#stay"/>-				<Detect2Chars attribute="String Substitution" char="{" char1="{" context="#stay" />-				<Detect2Chars attribute="String Substitution" char="}" char1="}" context="#stay" />-			</context>--			<!-- escape characters -->-			<context name="stringescape" attribute="String Char" lineEndContext="#stay">-				<!-- As this highlighting style is for both, Python 2 and 3,-				we do not know if a normal string is “unicode” or not. So we-				-->-				<RegExpr attribute="String Char" String="\\[\\'&quot;abfnrtv]|\\[0-7]{1,3}|\\x[0-9A-Fa-f]{2}|\\u[0-9A-Fa-f]{4}|\\U[0-9A-Fa-f]{8}|\\N\{[a-zA-Z0-9\- ]+\}" context="#stay"/>-			</context>--			<!-- escape characters -->-			<context name="bytesescape" attribute="String Char" lineEndContext="#stay">-				<!-- As this highlighting style is for both, Python 2 and 3,-				we do not know if a normal string is “unicode” or not. So we-				-->-				<RegExpr attribute="String Char" String="\\[\\'&quot;abfnrtv]|\\[0-7]{1,3}|\\x[0-9A-Fa-f]{2}" context="#stay"/>-			</context>--			<!-- f-literals -->-			<context name="stringinterpolation" attribute="F-String" lineEndContext="#stay">-				<Detect2Chars attribute="String Char" char="{" char1="{" context="#stay"/>-				<DetectChar attribute="String Substitution" char="{" context="String Interpolation"/>-				<Detect2Chars attribute="String Char" char="}" char1="}" context="#stay"/>-				<DetectChar attribute="Error" char="}" context="#stay"/>-			</context>-			<context name="String Interpolation" attribute="String Substitution" lineEndContext="#stay">-				<DetectChar attribute="Error" char="\" context="#pop"/>-				<RegExpr attribute="String Substitution" String="&format_spec;\}" context="#pop"/>-				<IncludeRules context="Normal"/> <!-- TODO: create expression context instead -->-			</context>---			<!---			It follows a Binary tree of string kinds (not even touching byte literals).-			The levels are:-			1. triple- vs. single-quoted-			2. apostrophe vs. quotation mark-			3. static vs. interpolated (f-literal)-			4. escaped vs. raw-			Adding byte literals wouldn’t make the current 2⁴ into 2⁵ contexts, as there are no byte f-literals-			-->--			<!-- Triple-quoted A-strings -->-			<context name="Triple A-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true">-				<DetectSpaces attribute="String"/>-				<DetectIdentifier attribute="String"/>-				<IncludeRules context="stringescape"/>-				<IncludeRules context="stringformat"/>-				<StringDetect attribute="String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/>-				<LineContinue attribute="String Char" context="#stay"/>-			</context>--			<context name="Raw Triple A-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">-				<DetectSpaces attribute="Raw String"/>-				<DetectIdentifier attribute="Raw String"/>-				<Detect2Chars attribute="Raw String" char="\" char1="'"/>-				<Detect2Chars attribute="Raw String" char="\" char1="\"/>-				<IncludeRules context="stringformat"/>-				<StringDetect attribute="Raw String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/>-			</context>--			<context name="Triple A-F-String" attribute="F-String" lineEndContext="#stay" noIndentationBasedFolding="true">-				<DetectSpaces attribute="F-String"/>-				<DetectIdentifier attribute="F-String"/>-				<IncludeRules context="stringescape"/>-				<IncludeRules context="stringinterpolation"/>-				<StringDetect attribute="F-String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/>-				<LineContinue attribute="String Char" context="#stay"/>-			</context>--			<context name="Raw Triple A-F-String" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">-				<DetectSpaces attribute="Raw F-String"/>-				<DetectIdentifier attribute="Raw F-String"/>-				<Detect2Chars attribute="Raw F-String" char="\" char1="'"/>-				<Detect2Chars attribute="Raw F-String" char="\" char1="\"/>-				<IncludeRules context="stringinterpolation"/>-				<StringDetect attribute="Raw F-String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/>-			</context>--			<context name="Triple A-B-String" attribute="B-String" lineEndContext="#stay" noIndentationBasedFolding="true">-				<RegExpr attribute="B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|\\(?=[^\\'&quot;abfnrtvx0-7])|\\x(?![0-9a-fA-F]{2})|'(?!''))++"/>-				<IncludeRules context="bytesescape"/>-				<StringDetect attribute="B-String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/>-				<LineContinue attribute="String Char" context="#stay"/>-				<RegExpr attribute="Error" String="."/>-			</context>--			<context name="Raw Triple A-B-String" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">-				<RegExpr attribute="Raw B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|\\.?|'(?!''))++"/>-				<StringDetect attribute="Raw B-String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/>-				<RegExpr attribute="Error" String="."/>-			</context>--			<!-- Triple-quoted Q-strings -->-			<context name="Triple Q-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true">-				<DetectSpaces attribute="String"/>-				<DetectIdentifier attribute="String"/>-				<IncludeRules context="stringescape"/>-				<IncludeRules context="stringformat"/>-				<StringDetect attribute="String" String="&quot;&quot;&quot;" context="#pop!#CheckForString" endRegion="Triple Q-region"/>-				<LineContinue attribute="String Char" context="#stay"/>-			</context>--			<context name="Raw Triple Q-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">-				<DetectSpaces attribute="Raw String"/>-				<DetectIdentifier attribute="Raw String"/>-				<Detect2Chars attribute="Raw String" char="\" char1="&quot;"/>-				<Detect2Chars attribute="Raw String" char="\" char1="\"/>-				<IncludeRules context="stringformat"/>-				<StringDetect attribute="Raw String" String="&quot;&quot;&quot;" context="#pop!#CheckForString" endRegion="Triple Q-region"/>-			</context>--			<context name="Triple Q-F-String" attribute="F-String" lineEndContext="#stay" noIndentationBasedFolding="true">-				<DetectSpaces attribute="F-String"/>-				<DetectIdentifier attribute="F-String"/>-				<IncludeRules context="stringescape"/>-				<IncludeRules context="stringinterpolation"/>-				<StringDetect attribute="F-String" String="&quot;&quot;&quot;" context="#pop!#CheckForString" endRegion="Triple Q-region"/>-				<LineContinue attribute="String Char" context="#stay"/>-			</context>--			<context name="Raw Triple Q-F-String" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">-				<DetectSpaces attribute="Raw F-String"/>-				<DetectIdentifier attribute="Raw F-String"/>-				<Detect2Chars attribute="Raw F-String" char="\" char1="&quot;"/>-				<Detect2Chars attribute="Raw F-String" char="\" char1="\"/>-				<IncludeRules context="stringinterpolation"/>-				<StringDetect attribute="Raw F-String" String="&quot;&quot;&quot;" context="#pop!#CheckForString" endRegion="Triple Q-region"/>-			</context>--			<context name="Triple Q-B-String" attribute="B-String" lineEndContext="#stay" noIndentationBasedFolding="true">-				<RegExpr attribute="B-String" String="([\x20\x21\x23-\x5B\x5D-\x7E]++|\\(?=[^\\'&quot;abfnrtvx0-7])|\\x(?![0-9a-fA-F]{2})|&quot;(?!&quot;&quot;))++"/>-				<IncludeRules context="bytesescape"/>-				<StringDetect attribute="B-String" String="&quot;&quot;&quot;" context="#pop!#CheckForString" endRegion="Triple Q-region"/>-				<LineContinue attribute="String Char" context="#stay"/>-				<RegExpr attribute="Error" String="."/>-			</context>--			<context name="Raw Triple Q-B-String" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">-				<RegExpr attribute="Raw B-String" String="([\x20\x21\x23-\x5B\x5D-\x7E]++|\\.?|&quot;(?!&quot;&quot;))++"/>-				<StringDetect attribute="Raw B-String" String="&quot;&quot;&quot;" context="#pop!#CheckForString" endRegion="Triple Q-region"/>-				<RegExpr attribute="Error" String="."/>-			</context>---			<!-- Single-quoted A-strings -->-			<context name="Single A-string" attribute="String" lineEndContext="#pop!UnfinishedStringError">-				<DetectSpaces attribute="String"/>-				<DetectIdentifier attribute="String"/>-				<IncludeRules context="stringescape"/>-				<IncludeRules context="stringformat"/>-				<DetectChar attribute="String" char="'" context="#pop!#CheckForString"/>-				<LineContinue attribute="String Char" context="#stay"/>-			</context>--			<context name="Raw A-string" attribute="Raw String" lineEndContext="#pop!UnfinishedStringError">-				<DetectSpaces attribute="Raw String"/>-				<DetectIdentifier attribute="Raw String"/>-				<Detect2Chars attribute="Raw String" char="\" char1="'"/>-				<Detect2Chars attribute="Raw String" char="\" char1="\"/>-				<IncludeRules context="stringformat"/>-				<DetectChar attribute="Raw String" char="'" context="#pop!#CheckForString"/>-				<LineContinue attribute="Raw String" context="#stay"/>-			</context>--			<context name="Single A-F-String" attribute="F-String" lineEndContext="#pop!UnfinishedStringError">-				<DetectSpaces attribute="F-String"/>-				<DetectIdentifier attribute="F-String"/>-				<IncludeRules context="stringescape"/>-				<IncludeRules context="stringinterpolation"/>-				<DetectChar attribute="F-String" char="'" context="#pop!#CheckForString"/>-				<LineContinue attribute="String Char" context="#stay"/>-			</context>--			<context name="Raw A-F-String" attribute="Raw F-String" lineEndContext="#pop!UnfinishedStringError">-				<DetectSpaces attribute="Raw F-String"/>-				<DetectIdentifier attribute="Raw F-String"/>-				<Detect2Chars attribute="Raw F-String" char="\" char1="'"/>-				<Detect2Chars attribute="Raw F-String" char="\" char1="\"/>-				<IncludeRules context="stringinterpolation"/>-				<DetectChar attribute="Raw F-String" char="'" context="#pop!#CheckForString"/>-				<LineContinue attribute="Raw F-String" context="#stay"/>-			</context>--			<context name="Single A-B-String" attribute="B-String" lineEndContext="#pop!UnfinishedStringError">-				<RegExpr attribute="B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|\\(?=[^\\'&quot;abfnrtvx0-7])|\\x(?![0-9a-fA-F]{2}))++"/>-				<IncludeRules context="bytesescape"/>-				<DetectChar attribute="B-String" char="'" context="#pop!#CheckForString"/>-				<LineContinue attribute="String Char" context="#stay"/>-				<RegExpr attribute="Error" String="."/>-			</context>--			<context name="Raw A-B-String" attribute="Raw B-String" lineEndContext="#pop!UnfinishedStringError">-				<RegExpr attribute="Raw B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|\\.)++"/>-				<DetectChar attribute="Raw B-String" char="'" context="#pop!#CheckForString"/>-				<LineContinue attribute="Raw B-String" context="#stay"/>-				<RegExpr attribute="Error" String="."/>-			</context>--			<!-- Single-quoted Q-strings -->-			<context name="Single Q-string" attribute="String" lineEndContext="#pop!UnfinishedStringError">-				<DetectSpaces attribute="String"/>-				<DetectIdentifier attribute="String"/>-				<IncludeRules context="stringescape"/>-				<IncludeRules context="stringformat"/>-				<DetectChar attribute="String" char="&quot;" context="#pop!#CheckForString"/>-				<LineContinue attribute="String Char" context="#stay"/>-			</context>--			<context name="Raw Q-string" attribute="Raw String" lineEndContext="#pop!UnfinishedStringError">-				<DetectSpaces attribute="Raw String"/>-				<DetectIdentifier attribute="Raw String"/>-				<Detect2Chars attribute="Raw String" char="\" char1="&quot;"/>-				<Detect2Chars attribute="Raw String" char="\" char1="\"/>-				<IncludeRules context="stringformat"/>-				<DetectChar attribute="Raw String" char="&quot;" context="#pop!#CheckForString"/>-				<LineContinue attribute="Raw String" context="#stay"/>-			</context>--			<context name="Single Q-F-String" attribute="F-String" lineEndContext="#pop!UnfinishedStringError">-				<DetectSpaces attribute="F-String"/>-				<DetectIdentifier attribute="F-String"/>-				<IncludeRules context="stringescape"/>-				<IncludeRules context="stringinterpolation"/>-				<DetectChar attribute="F-String" char="&quot;" context="#pop!#CheckForString"/>-				<LineContinue attribute="String Char" context="#stay"/>-			</context>--			<context name="Raw Q-F-String" attribute="Raw F-String" lineEndContext="#pop!UnfinishedStringError">-				<DetectSpaces attribute="Raw F-String"/>-				<DetectIdentifier attribute="Raw F-String"/>-				<Detect2Chars attribute="Raw F-String" char="\" char1="&quot;"/>-				<Detect2Chars attribute="Raw F-String" char="\" char1="\"/>-				<IncludeRules context="stringinterpolation"/>-				<DetectChar attribute="Raw F-String" char="&quot;" context="#pop!#CheckForString"/>-				<LineContinue attribute="Raw F-String" context="#stay"/>-			</context>--			<context name="Single Q-B-String" attribute="B-String" lineEndContext="#pop!UnfinishedStringError">-				<RegExpr attribute="B-String" String="([\x20\x21\x23-\x5B\x5D-\x7E]++|\\(?=[^\\'&quot;abfnrtvx0-7])|\\x(?![0-9a-fA-F]{2}))++"/>-				<IncludeRules context="bytesescape"/>-				<DetectChar attribute="B-String" char="&quot;" context="#pop!#CheckForString"/>-				<LineContinue attribute="String Char" context="#stay"/>-				<RegExpr attribute="Error" String="."/>-			</context>--			<context name="Raw Q-B-String" attribute="Raw B-String" lineEndContext="#pop!UnfinishedStringError">-				<RegExpr attribute="Raw B-String" String="([\x20\x21\x23-\x5B\x5D-\x7E]++|\\.)++"/>-				<DetectChar attribute="Raw B-String" char="&quot;" context="#pop!#CheckForString"/>-				<Detect2Chars attribute="Raw B-String" char="\" char1="\"/>-				<LineContinue attribute="Raw B-String" context="#stay"/>-				<RegExpr attribute="Error" String="."/>-			</context>--		</contexts>--		<itemDatas>-			<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>-			<itemData name="Definition Keyword" defStyleNum="dsKeyword" spellChecking="false"/>-			<itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>-			<itemData name="Operator Keyword" defStyleNum="dsKeyword" spellChecking="false"/>-			<itemData name="Flow Control Keyword" defStyleNum="dsControlFlow" spellChecking="false"/>-			<itemData name="Builtin Function" defStyleNum="dsBuiltIn" spellChecking="false"/>-			<itemData name="Special Variable" defStyleNum="dsVariable" spellChecking="false"/>-			<itemData name="Extensions" defStyleNum="dsExtension" spellChecking="false"/>-			<itemData name="Exceptions" defStyleNum="dsPreprocessor" spellChecking="false"/>-			<itemData name="Overloaders" defStyleNum="dsFunction" spellChecking="false"/>-			<itemData name="Import" defStyleNum="dsImport" spellChecking="false"/>-			<itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>-			<itemData name="Int" defStyleNum="dsDecVal" spellChecking="false"/>-			<itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/>-			<itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false"/>-			<itemData name="Binary" defStyleNum="dsBaseN" spellChecking="false"/>-			<itemData name="Complex" defStyleNum="dsOthers" spellChecking="false"/>-			<itemData name="Comment" defStyleNum="dsComment"/>-			<itemData name="String" defStyleNum="dsString"/>-			<itemData name="Raw String" defStyleNum="dsVerbatimString"/>-			<itemData name="F-String" defStyleNum="dsSpecialString"/>-			<itemData name="Raw F-String" defStyleNum="dsVerbatimString"/>-			<itemData name="B-String" defStyleNum="dsString" spellChecking="false"/>-			<itemData name="Raw B-String" defStyleNum="dsVerbatimString" spellChecking="false"/>-			<itemData name="String Char" defStyleNum="dsChar" spellChecking="false"/>-			<itemData name="String Substitution" defStyleNum="dsSpecialChar" spellChecking="false"/>-			<itemData name="Decorator" defStyleNum="dsAttribute" spellChecking="false"/>-			<itemData name="Error" defStyleNum="dsError"/>++	<!ENTITY escapedHex "\\x[0-9A-Fa-f]{2}">+	<!ENTITY escapedHexUni "&escapedHex;|\\u[0-9A-Fa-f]{4}|\\U[0-9A-Fa-f]{8}|\\N\{[a-zA-Z0-9\- ]+\}">++	<!ENTITY fStringSimpleParam "(?:[\w(), ]*|'[^']*'|&quot;[^&quot;]*&quot;)*">+	<!ENTITY fStringSimpleIdent "(?:[_[:alpha:]]\w*&format_spec;)">+	<!ENTITY fStringSimple "(?:\{[-+]?(&fStringSimpleIdent;(\.&fStringSimpleIdent;?|\(&fStringSimpleParam;\)|\[&fStringSimpleParam;\]|[-+*/&#37;@|&amp;^ ])*+)?\})">+	<!ENTITY regFStringRangeN "(?:&fStringSimple;|[0-9]+)">+]>+<!-- Python syntax highlightning v0.9 by Per Wigren -->+<!-- Python syntax highlighting v1.9 by Michael Bueker (improved keyword differentiation) -->+<!-- Python syntax highlighting v1.97 by Paul Giannaros -->+<!-- Python syntax highlighting v1.99 by Primoz Anzur -->+<!-- Python syntax highlighting v2.01 by Paul Giannaros:+	* full format character support+	* unicode string modifier supported -->+<!-- v2.02 remove RegExpr for nums and make indent consistent -->+<!-- v2.03 highlight decorators, remove operator regex, don't highlight parens as operators -->+<!-- v2.04 make alerts visible even if they are directly after ''' or # without a space -->+<!-- v2.06 decorator names can (and often do) contain periods -->+<!-- v2.07 add support for %prog and co, see bug 142832 -->+<!-- v2.08 add missing overloaders, new Python 3 statements, builtins, and keywords -->+<!-- v2.29 recognize escape sequenzes correctly -->+<language name="Python" alternativeNames="Py" version="30" style="python" indenter="python" kateversion="5.0" section="Scripts" extensions="*.py;*.pyw;*.pyi;SConstruct;SConscript;*.FCMacro" mimetype="application/x-python;text/x-python;text/x-python3" casesensitive="1" author="Michael Bueker" license="">+	<highlighting>+		<list name="import">+			<item>import</item>+			<item>from</item>+			<item>as</item>+		</list>+		<list name="defs">+			<item>class</item>+			<item>def</item>+			<item>del</item>+			<item>global</item>+			<item>lambda</item>+			<item>nonlocal</item>+		</list>+		<list name="operators">+			<item>and</item>+			<item>in</item>+			<item>is</item>+			<item>not</item>+			<item>or</item>+		</list>+		<list name="flow">+			<item>assert</item>+			<item>break</item>+			<item>continue</item>+			<item>elif</item>+			<item>else</item>+			<item>except</item>+			<item>finally</item>+			<item>for</item>+			<item>if</item>+			<item>pass</item>+			<item>raise</item>+			<item>return</item>+			<item>try</item>+			<item>while</item>+			<item>with</item>+			<item>async</item>+			<item>await</item>+		</list>+		<list name="flow_yield">+			<item>yield</item>+			<!--+				"yield from" added here as a keyword for autocompletion. The actual handling+				is in context="yield" so that we won't need to add space as a weakDeliminator.+			-->+			<item>yield from</item>+		</list>+		<list name="patternmatching">+			<item>match</item>+			<item>case</item>+		</list>+		<list name="builtinfuncs">+			<!-- https://docs.python.org/3.11/library/functions.html#built-in-funcs -->+			<item>__import__</item>+			<item>abs</item>+			<item>aiter</item>+			<item>all</item>+			<item>anext</item>+			<item>any</item>+			<item>apply</item>+			<item>ascii</item>+			<item>basestring</item>+			<item>bin</item>+			<item>breakpoint</item>+			<item>bool</item>+			<item>buffer</item>+			<item>bytearray</item>+			<item>bytes</item>+			<item>callable</item>+			<item>chr</item>+			<item>classmethod</item>+			<item>cmp</item>+			<item>coerce</item>+			<item>compile</item>+			<item>complex</item>+			<item>delattr</item>+			<item>dict</item>+			<item>dir</item>+			<item>divmod</item>+			<item>enumerate</item>+			<item>eval</item>+			<item>exec</item>+			<item>execfile</item>+			<item>file</item>+			<item>filter</item>+			<item>float</item>+			<item>format</item>+			<item>frozenset</item>+			<item>getattr</item>+			<item>globals</item>+			<item>hasattr</item>+			<item>hash</item>+			<item>help</item>+			<item>hex</item>+			<item>id</item>+			<item>input</item>+			<item>int</item>+			<item>intern</item>+			<item>isinstance</item>+			<item>issubclass</item>+			<item>iter</item>+			<item>len</item>+			<item>list</item>+			<item>locals</item>+			<item>long</item>+			<item>map</item>+			<item>max</item>+			<item>memoryview</item>+			<item>min</item>+			<item>next</item>+			<item>object</item>+			<item>oct</item>+			<item>open</item>+			<item>ord</item>+			<item>pow</item>+			<item>print</item>+			<item>property</item>+			<item>range</item>+			<item>raw_input</item>+			<item>reduce</item>+			<item>reload</item>+			<item>repr</item>+			<item>reversed</item>+			<item>round</item>+			<item>set</item>+			<item>setattr</item>+			<item>slice</item>+			<item>sorted</item>+			<item>staticmethod</item>+			<item>str</item>+			<item>sum</item>+			<item>super</item>+			<item>tuple</item>+			<item>type</item>+			<item>unichr</item>+			<item>unicode</item>+			<item>vars</item>+			<item>xrange</item>+			<item>zip</item>+		</list>+		<list name="specialvars">+			<item>None</item>+			<item>self</item>+			<item>True</item>+			<item>False</item>+			<item>NotImplemented</item>+			<item>Ellipsis</item>+			<item>__all__</item>+			<item>__class__</item>+			<item>__debug__</item>+			<item>__file__</item>+			<item>__name__</item>+			<item>__qualname__</item>+			<item>__slots__</item>+		</list>+		<list name="bindings">+			<item>SIGNAL</item>+			<item>SLOT</item>+			<item>connect</item>+		</list>+		<list name="overloaders">+			<!-- https://docs.python.org/3.10/reference/datamodel.html#special-method-names -->+			<item>__new__</item>+			<item>__init__</item>+			<item>__del__</item>+			<item>__repr__</item>+			<item>__str__</item>+			<item>__lt__</item>+			<item>__le__</item>+			<item>__eq__</item>+			<item>__ne__</item>+			<item>__gt__</item>+			<item>__ge__</item>+			<item>__cmp__</item>+			<item>__rcmp__</item>+			<item>__hash__</item>+			<item>__bool__</item>+			<item>__nonzero__</item>+			<item>__unicode__</item>+			<item>__getattr__</item>+			<item>__setattr__</item>+			<item>__delattr__</item>+			<item>__getattribute__</item>+			<item>__get__</item>+			<item>__set__</item>+			<item>__delete__</item>+			<item>__call__</item>+			<item>__len__</item>+			<item>__length_hint__</item>+			<item>__getitem__</item>+			<item>__setitem__</item>+			<item>__delitem__</item>+			<item>__missing__</item>+			<item>__iter__</item>+			<item>__reversed__</item>+			<item>__contains__</item>+			<item>__getslice__</item>+			<item>__setslice__</item>+			<item>__delslice__</item>+			<item>__add__</item>+			<item>__sub__</item>+			<item>__mul__</item>+			<item>__matmul__</item>+			<item>__floordiv__</item>+			<item>__mod__</item>+			<item>__divmod__</item>+			<item>__pow__</item>+			<item>__lshift__</item>+			<item>__rshift__</item>+			<item>__and__</item>+			<item>__xor__</item>+			<item>__or__</item>+			<item>__div__</item>+			<item>__truediv__</item>+			<item>__radd__</item>+			<item>__rsub__</item>+			<item>__rmul__</item>+			<item>__rmatmul__</item>+			<item>__rdiv__</item>+			<item>__rtruediv__</item>+			<item>__rfloordiv__</item>+			<item>__rmod__</item>+			<item>__rdivmod__</item>+			<item>__rpow__</item>+			<item>__rlshift__</item>+			<item>__rrshift__</item>+			<item>__rand__</item>+			<item>__rxor__</item>+			<item>__ror__</item>+			<item>__iadd__</item>+			<item>__isub__</item>+			<item>__imul__</item>+			<item>__imatmul__</item>+			<item>__idiv__</item>+			<item>__itruediv__</item>+			<item>__ifloordiv__</item>+			<item>__imod__</item>+			<item>__ipow__</item>+			<item>__ilshift__</item>+			<item>__irshift__</item>+			<item>__iand__</item>+			<item>__ixor__</item>+			<item>__ior__</item>+			<item>__neg__</item>+			<item>__pos__</item>+			<item>__abs__</item>+			<item>__invert__</item>+			<item>__complex__</item>+			<item>__int__</item>+			<item>__long__</item>+			<item>__float__</item>+			<item>__oct__</item>+			<item>__hex__</item>+			<item>__index__</item>+			<item>__round__</item>+			<item>__trunc__</item>+			<item>__floor__</item>+			<item>__ceil__</item>+			<item>__coerce__</item>+			<item>__enter__</item>+			<item>__exit__</item>+			<item>__match_args__</item>+			<item>__buffer__</item>+			<item>__release_buffer__</item>+			<item>__bytes__</item>+			<item>__format__</item>+			<item>__next__</item>+			<item>__dir__</item>+			<item>__await__</item>+			<item>__aiter__</item>+			<item>__anext__</item>+			<item>__aenter__</item>+			<item>__aexit__</item>+			<item>__slots__</item>+			<item>__init_subclass__</item>+			<item>__set_name__</item>+			<item>__prepare__</item>+			<item>__instancecheck__</item>+			<item>__subclasscheck__</item>+			<item>__class_getitem__</item>+		</list>+		<list name="exceptions">+			<!--+				Exceptions list resources used:+				- http://docs.python.org/2.7/library/exceptions.html#exception-hierarchy+				- http://docs.python.org/3.10/library/exceptions.html#exception-hierarchy+			-->+			<item>ArithmeticError</item>+			<item>AssertionError</item>+			<item>AttributeError</item>+			<item>BaseException</item>+			<item>BlockingIOError</item>+			<item>BrokenPipeError</item>+			<item>BufferError</item>+			<item>BytesWarning</item>+			<item>ChildProcessError</item>+			<item>ConnectionAbortedError</item>+			<item>ConnectionError</item>+			<item>ConnectionRefusedError</item>+			<item>ConnectionResetError</item>+			<item>DeprecationWarning</item>+			<item>EnvironmentError</item>+			<item>EOFError</item>+			<item>EncodingWarning</item>+			<item>Exception</item>+			<item>FileExistsError</item>+			<item>FileNotFoundError</item>+			<item>FloatingPointError</item>+			<item>FutureWarning</item>+			<item>GeneratorExit</item>+			<item>ImportError</item>+			<item>ImportWarning</item>+			<item>IndentationError</item>+			<item>IndexError</item>+			<item>InterruptedError</item>+			<item>IOError</item>+			<item>IsADirectoryError</item>+			<item>KeyboardInterrupt</item>+			<item>KeyError</item>+			<item>LookupError</item>+			<item>MemoryError</item>+			<item>ModuleNotFoundError</item>+			<item>NameError</item>+			<item>NotADirectoryError</item>+			<item>NotImplementedError</item>+			<item>OSError</item>+			<item>OverflowError</item>+			<item>PendingDeprecationWarning</item>+			<item>PermissionError</item>+			<item>ProcessLookupError</item>+			<item>RecursionError</item>+			<item>ReferenceError</item>+			<item>ResourceWarning</item>+			<item>RuntimeError</item>+			<item>RuntimeWarning</item>+			<item>StandardError</item>+			<item>StopAsyncIteration</item>+			<item>StopIteration</item>+			<item>SyntaxError</item>+			<item>SyntaxWarning</item>+			<item>SystemError</item>+			<item>SystemExit</item>+			<item>TabError</item>+			<item>TimeoutError</item>+			<item>TypeError</item>+			<item>UnboundLocalError</item>+			<item>UnicodeDecodeError</item>+			<item>UnicodeEncodeError</item>+			<item>UnicodeError</item>+			<item>UnicodeTranslateError</item>+			<item>UnicodeWarning</item>+			<item>UserWarning</item>+			<item>ValueError</item>+			<item>Warning</item>+			<item>WindowsError</item>+			<item>ZeroDivisionError</item>+		</list>+		<contexts>+			<context name="Normal" attribute="Normal Text" lineEndContext="#stay">+				<DetectSpaces attribute="Normal Text"/>++				<DetectChar attribute="Normal Text" char="(" context="Tuple" beginRegion="Tuple"/>+				<DetectChar attribute="Normal Text" char="[" context="List" beginRegion="List"/>+				<DetectChar attribute="Normal Text" char="{" context="Dictionary" beginRegion="Dictionary"/>++				<DetectChar attribute="Comment" char="#" context="Hash comment"/>++				<keyword attribute="Special Variable" String="specialvars" context="#stay"/>+				<keyword attribute="Flow Control Keyword" String="flow" context="#stay"/>+				<keyword attribute="Operator Keyword" String="operators" context="#stay"/>+				<keyword attribute="Builtin Function" String="builtinfuncs" context="#stay"/>+				<keyword attribute="Definition Keyword" String="defs" context="#stay"/>+				<keyword attribute="Flow Control Keyword" String="flow_yield" context="yield"/>+				<keyword attribute="Flow Control Keyword" String="patternmatching" context="Pattern Matching" lookAhead="1" firstNonSpace="1"/>+				<keyword attribute="Import" String="import" context="#stay"/>+				<keyword attribute="Exceptions" String="exceptions" context="#stay"/>+				<keyword attribute="Overloaders" String="overloaders" context="#stay"/>+				<keyword attribute="Extensions" String="bindings" context="#stay"/>++				<IncludeRules context="Number" />+				<IncludeRules context="CommentVariants" />+				<IncludeRules context="StringVariants" />++				<DetectIdentifier attribute="Normal Text"/>++				<RegExpr attribute="Decorator" String="@[_a-zA-Z[:^ascii:]][\._a-zA-Z0-9[:^ascii:]]*" firstNonSpace="true"/>+				<Detect2Chars attribute="Operator" char=":" char1="=" context="#stay"/>+				<AnyChar attribute="Operator" String="+*/%|=;&lt;&gt;!^&amp;~-@" context="#stay"/>++				<LineContinue attribute="Operator" context="MultiLineExpr"/>++				<Int attribute="Error"/>+			</context>+			<!-- a string at the beginning of lines is a comment, MultiLineExpr prevents this -->+			<context name="MultiLineExpr" attribute="Normal Text" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">+				<DetectSpaces attribute="Normal Text"/>+				<IncludeRules context="StringVariants"/>+			</context>++			<!-- https://docs.python.org/2/reference/lexical_analysis.html#integer-and-long-integer-literals -->+			<!-- https://docs.python.org/3/reference/lexical_analysis.html#integer-literals -->+			<context name="Number" attribute="Normal Text" lineEndContext="#pop">+				<!-- fast path -->+				<RegExpr String="&beforeDigit;[0-9]|&beforePointFloat;\.[0-9]" context="AssumeNumber" lookAhead="1"/>+			</context>+			<context name="AssumeNumber" attribute="Normal Text" lineEndContext="#pop">+				<!-- Complex: 1j ; 1.1j ; 1.j ; .1j ; 1e3j ; 1.1e3j ; 1.e3j ; .1e3j -->+				<RegExpr attribute="Complex" String="(?:&digitPart;(?:\.(?:&digitPart;)?)?|&beforePointFloat;\.&digitPart;)(?:[eE][\+\-]?&digitPart;)?[jJ]" context="CheckSuffixError"/>+				<!-- Hexadecimal: 0xA1, Binary: 0b01, Octal: 0o71 -->+				<RegExpr attribute="Hex" String="0[xX](?:_?[0-9a-fA-F])+" context="CheckSuffixError"/>+				<RegExpr attribute="Binary" String="0[bB](?:_?[01])+" context="CheckSuffixError"/>+				<RegExpr attribute="Octal" String="0[oO](?:_?[0-7])+" context="CheckSuffixError"/>+				<!-- Float: 1.1 ; 1. ; .1 ; 1e3 ; 1.1e3 ; 1.e3 ; .1e3 -->+				<RegExpr attribute="Float" String="(?:&digitPart;(?:\.(?:&digitPart;)?)?|\.&digitPart;)[eE][\+\-]?&digitPart;|&digitPart;\.(?:&digitPart;)?|\.&digitPart;" context="CheckSuffixError"/>+				<!-- Decimal: 123 ; 000 -->+				<!-- l and L are python2 suffixes -->+				<RegExpr attribute="Int" String="(?:[1-9](?:_?[0-9])*|0(?:_?0)*)[lL]?" context="CheckSuffixError"/>+			</context>+			<context name="CheckSuffixError" attribute="Normal Text" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop">+				<RegExpr attribute="Error" String="\w+" context="#pop#pop"/>+			</context>++			<context name="yield" attribute="Flow Control Keyword" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">+				<DetectSpaces attribute="Normal Text" context="#stay"/>+				<WordDetect attribute="Flow Control Keyword" context="#pop" String="from"/>+			</context>++			<context name="Pattern Matching" attribute="Flow Control Keyword" lineEndContext="#pop">+				<!--+					Python 3.10: https://docs.python.org/3.10/reference/compound_stmts.html#the-match-statement+					( 'match' | 'case' ) expression ':'+					exclude:+					( 'match' | 'case' ) ( 'if' | 'for' | '.' | ':' | '=' | ',' | ']' | ')' ) ...+				-->+				<RegExpr attribute="Flow Control Keyword" String="\w++(?=\s+(?!(?:if|for)\b)[\w'&quot;~]|\s*+(?![.:=\]),]|(?:if|for)\b)((?:&string;|[^#;(){}]|\(\)|\((?1)\)|\{\}|\{(\s*+(?:(?:&string;|[a-zA-Z0-9.]++)\s*+:\s*+(?:&string;|[^#;(){},]|\(\)|\((?1)\)|\{\}|\{(?2)\})++,?)*+)\})+?):)|" context="#pop"/>+				<DetectIdentifier attribute="Normal Text" context="#pop"/>+			</context>++			<!-- https://docs.python.org/2/reference/lexical_analysis.html#string-literals -->+			<!-- https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals -->+			<context name="StringVariants" attribute="Normal Text" lineEndContext="#stay">+				<!-- fast path -->+				<RegExpr String="(?:u|r|b|f|ur|fr|rf|br|rb)?['&quot;]" insensitive="true" context="AssumeStringVariants" lookAhead="1"/>+			</context>+			<context name="AssumeStringVariants" attribute="Normal Text" lineEndContext="#stay">+				<StringDetect attribute="String" String="'''"                context="#pop!Triple A-string" beginRegion="Triple A-region"/>+				<StringDetect attribute="String" String="&quot;&quot;&quot;" context="#pop!Triple Q-string" beginRegion="Triple Q-region"/>+				<StringDetect attribute="String" String="'"                  context="#pop!Single A-string"/>+				<StringDetect attribute="String" String="&quot;"             context="#pop!Single Q-string"/>++				<StringDetect attribute="F-String" String="f'''"                insensitive="true" context="#pop!Triple A-F-String" beginRegion="Triple A-region"/>+				<StringDetect attribute="F-String" String="f&quot;&quot;&quot;" insensitive="true" context="#pop!Triple Q-F-String" beginRegion="Triple Q-region"/>+				<StringDetect attribute="F-String" String="f'"                  insensitive="true" context="#pop!Single A-F-String"/>+				<StringDetect attribute="F-String" String="f&quot;"             insensitive="true" context="#pop!Single Q-F-String"/>++				<!-- lower r for regex -->+				<StringDetect attribute="Raw String" String="r'''"                context="#pop!Raw Triple A-Regex" beginRegion="Triple A-region"/>+				<StringDetect attribute="Raw String" String="r&quot;&quot;&quot;" context="#pop!Raw Triple Q-Regex" beginRegion="Triple Q-region"/>+				<StringDetect attribute="Raw String" String="r'"                  context="#pop!Raw A-Regex"/>+				<StringDetect attribute="Raw String" String="r&quot;"             context="#pop!Raw Q-Regex"/>++				<!-- upper r for string -->+				<StringDetect attribute="Raw String" String="R'''"                context="#pop!Raw Triple A-string" beginRegion="Triple A-region"/>+				<StringDetect attribute="Raw String" String="R&quot;&quot;&quot;" context="#pop!Raw Triple Q-string" beginRegion="Triple Q-region"/>+				<StringDetect attribute="Raw String" String="R'"                  context="#pop!Raw A-string"/>+				<StringDetect attribute="Raw String" String="R&quot;"             context="#pop!Raw Q-string"/>++				<StringDetect attribute="B-String" String="b'''"                insensitive="true" context="#pop!Triple A-B-String" beginRegion="Triple A-region"/>+				<StringDetect attribute="B-String" String="b&quot;&quot;&quot;" insensitive="true" context="#pop!Triple Q-B-String" beginRegion="Triple Q-region"/>+				<StringDetect attribute="B-String" String="b'"                  insensitive="true" context="#pop!Single A-B-String"/>+				<StringDetect attribute="B-String" String="b&quot;"             insensitive="true" context="#pop!Single Q-B-String"/>++				<!-- lower r and f for regex -->+				<StringDetect attribute="Raw F-String" String="fr'''"                context="#pop!Raw Triple A-F-Regex" beginRegion="Triple A-region"/>+				<StringDetect attribute="Raw F-String" String="rf'''"                context="#pop!Raw Triple A-F-Regex" beginRegion="Triple A-region"/>+				<StringDetect attribute="Raw F-String" String="fr&quot;&quot;&quot;" context="#pop!Raw Triple Q-F-Regex" beginRegion="Triple Q-region"/>+				<StringDetect attribute="Raw F-String" String="rf&quot;&quot;&quot;" context="#pop!Raw Triple Q-F-Regex" beginRegion="Triple Q-region"/>+				<StringDetect attribute="Raw F-String" String="fr'"                  context="#pop!Raw A-F-Regex"/>+				<StringDetect attribute="Raw F-String" String="rf'"                  context="#pop!Raw A-F-Regex"/>+				<StringDetect attribute="Raw F-String" String="fr&quot;"             context="#pop!Raw Q-F-Regex"/>+				<StringDetect attribute="Raw F-String" String="rf&quot;"             context="#pop!Raw Q-F-Regex"/>++				<!-- upper r or f for string -->+				<StringDetect attribute="Raw F-String" String="fr'''"                insensitive="true" context="#pop!Raw Triple A-F-String" beginRegion="Triple A-region"/>+				<StringDetect attribute="Raw F-String" String="rf'''"                insensitive="true" context="#pop!Raw Triple A-F-String" beginRegion="Triple A-region"/>+				<StringDetect attribute="Raw F-String" String="fr&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-F-String" beginRegion="Triple Q-region"/>+				<StringDetect attribute="Raw F-String" String="rf&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-F-String" beginRegion="Triple Q-region"/>+				<StringDetect attribute="Raw F-String" String="fr'"                  insensitive="true" context="#pop!Raw A-F-String"/>+				<StringDetect attribute="Raw F-String" String="rf'"                  insensitive="true" context="#pop!Raw A-F-String"/>+				<StringDetect attribute="Raw F-String" String="fr&quot;"             insensitive="true" context="#pop!Raw Q-F-String"/>+				<StringDetect attribute="Raw F-String" String="rf&quot;"             insensitive="true" context="#pop!Raw Q-F-String"/>++				<!-- lower r and b for regex -->+				<StringDetect attribute="Raw B-String" String="br'''"                context="#pop!Raw Triple A-B-Regex" beginRegion="Triple A-region"/>+				<StringDetect attribute="Raw B-String" String="rb'''"                context="#pop!Raw Triple A-B-Regex" beginRegion="Triple A-region"/>+				<StringDetect attribute="Raw B-String" String="br&quot;&quot;&quot;" context="#pop!Raw Triple Q-B-Regex" beginRegion="Triple Q-region"/>+				<StringDetect attribute="Raw B-String" String="rb&quot;&quot;&quot;" context="#pop!Raw Triple Q-B-Regex" beginRegion="Triple Q-region"/>+				<StringDetect attribute="Raw B-String" String="br'"                  context="#pop!Raw A-B-Regex"/>+				<StringDetect attribute="Raw B-String" String="rb'"                  context="#pop!Raw A-B-Regex"/>+				<StringDetect attribute="Raw B-String" String="br&quot;"             context="#pop!Raw Q-B-Regex"/>+				<StringDetect attribute="Raw B-String" String="rb&quot;"             context="#pop!Raw Q-B-Regex"/>++				<!-- upper r or b for string -->+				<StringDetect attribute="Raw B-String" String="br'''"                insensitive="true" context="#pop!Raw Triple A-B-String" beginRegion="Triple A-region"/>+				<StringDetect attribute="Raw B-String" String="rb'''"                insensitive="true" context="#pop!Raw Triple A-B-String" beginRegion="Triple A-region"/>+				<StringDetect attribute="Raw B-String" String="br&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-B-String" beginRegion="Triple Q-region"/>+				<StringDetect attribute="Raw B-String" String="rb&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-B-String" beginRegion="Triple Q-region"/>+				<StringDetect attribute="Raw B-String" String="br'"                  insensitive="true" context="#pop!Raw A-B-String"/>+				<StringDetect attribute="Raw B-String" String="rb'"                  insensitive="true" context="#pop!Raw A-B-String"/>+				<StringDetect attribute="Raw B-String" String="br&quot;"             insensitive="true" context="#pop!Raw Q-B-String"/>+				<StringDetect attribute="Raw B-String" String="rb&quot;"             insensitive="true" context="#pop!Raw Q-B-String"/>++				<!-- Python 2 compatibility (unicode prefix) -->++				<StringDetect attribute="String" String="u'''"                     insensitive="true" context="#pop!Triple A-string" beginRegion="Triple A-region"/>+				<StringDetect attribute="String" String="u&quot;&quot;&quot;"      insensitive="true" context="#pop!Triple Q-string" beginRegion="Triple Q-region"/>+				<StringDetect attribute="String" String="u'"                       insensitive="true" context="#pop!Single A-string"/>+				<StringDetect attribute="String" String="u&quot;"                  insensitive="true" context="#pop!Single Q-string"/>++				<StringDetect attribute="Raw String" String="ur'''"                insensitive="true" context="#pop!Raw Triple A-string" beginRegion="Triple A-region"/>+				<StringDetect attribute="Raw String" String="ur&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-string" beginRegion="Triple Q-region"/>+				<StringDetect attribute="Raw String" String="ur'"                  insensitive="true" context="#pop!Raw A-string"/>+				<StringDetect attribute="Raw String" String="ur&quot;"             insensitive="true" context="#pop!Raw Q-string"/>+			</context>++			<!-- https://docs.python.org/2/reference/lexical_analysis.html#string-literals -->+			<!-- https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals -->+			<context name="CommentVariants" attribute="Normal Text" lineEndContext="#stay">+				<!-- fast path -->+				<RegExpr String="(?:u|r|ur)?['&quot;]" insensitive="true" firstNonSpace="true" context="AssumeCommentVariants" lookAhead="1"/>+			</context>+			<context name="AssumeCommentVariants" attribute="Normal Text" lineEndContext="#stay">+				<StringDetect attribute="Comment" String="'''"                 insensitive="true" context="#pop!Triple A-comment" beginRegion="Triple A-region"/>+				<StringDetect attribute="Comment" String="&quot;&quot;&quot;"  insensitive="true" context="#pop!Triple Q-comment" beginRegion="Triple Q-region"/>+				<StringDetect attribute="Comment" String="'"                   insensitive="true" context="#pop!Single A-comment"/>+				<StringDetect attribute="Comment" String="&quot;"              insensitive="true" context="#pop!Single Q-comment"/>+				<StringDetect attribute="Comment" String="r'''"                insensitive="true" context="#pop!Triple A-comment" beginRegion="Triple A-region"/>+				<StringDetect attribute="Comment" String="r&quot;&quot;&quot;" insensitive="true" context="#pop!Triple Q-comment" beginRegion="Triple Q-region"/>+				<StringDetect attribute="Comment" String="r'"                  insensitive="true" context="#pop!Single A-comment"/>+				<StringDetect attribute="Comment" String="r&quot;"             insensitive="true" context="#pop!Single Q-comment"/>++				<!-- Python 2 compatibility (unicode prefix) -->+				<StringDetect attribute="Comment" String="u'''"                 insensitive="true" context="#pop!Triple A-comment" beginRegion="Triple A-region"/>+				<StringDetect attribute="Comment" String="u&quot;&quot;&quot;"  insensitive="true" context="#pop!Triple Q-comment" beginRegion="Triple Q-region"/>+				<StringDetect attribute="Comment" String="u'"                   insensitive="true" context="#pop!Single A-comment"/>+				<StringDetect attribute="Comment" String="u&quot;"              insensitive="true" context="#pop!Single Q-comment"/>+				<StringDetect attribute="Comment" String="ur'''"                insensitive="true" context="#pop!Triple A-comment" beginRegion="Triple A-region"/>+				<StringDetect attribute="Comment" String="ur&quot;&quot;&quot;" insensitive="true" context="#pop!Triple Q-comment" beginRegion="Triple Q-region"/>+				<StringDetect attribute="Comment" String="ur'"                  insensitive="true" context="#pop!Single A-comment"/>+				<StringDetect attribute="Comment" String="ur&quot;"             insensitive="true" context="#pop!Single Q-comment"/>+			</context>++			<context name="Dictionary" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces/>+				<DetectChar attribute="Normal Text" char="}" context="#pop" endRegion="Dictionary"/>+				<IncludeRules context="StringVariants" />+				<IncludeRules context="Normal" />+			</context>++			<context name="List" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces/>+				<DetectChar attribute="Normal Text" char="]" context="#pop" endRegion="List"/>+				<IncludeRules context="StringVariants" />+				<IncludeRules context="Normal" />+			</context>++			<context name="Tuple" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces/>+				<DetectChar attribute="Normal Text" char=")" context="#pop" endRegion="Tuple"/>+				<IncludeRules context="StringVariants" />+				<IncludeRules context="Normal" />+			</context>++			<context name="UnfinishedStringError" attribute="Error" lineEndContext="#stay" noIndentationBasedFolding="true">+				<!-- A single string/comment reached the end of the line without a \ line escape -->+				<!-- We set the following line (or part of it) to the "Error" attribute so that this error is easier to spot -->+				<RegExpr attribute="Error" String="^(\s{4,}|[^[\]()&quot;']{4,}([&quot;'].*)?)" context="#pop" column="0"/>+			</context>++			<!-- Comments -->++			<context name="Hash comment" attribute="Comment" lineEndContext="#pop">+				<DetectSpaces />+				<IncludeRules context="##Comments" />+				<DetectIdentifier/>+			</context>++			<context name="Triple A-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces/>+				<StringDetect attribute="Comment" String="'''" context="#pop" endRegion="Triple A-region"/>+				<IncludeRules context="##Comments" />+				<DetectIdentifier/>+				<IncludeRules context="stringescape"/>+			</context>++			<context name="Triple Q-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces/>+				<StringDetect attribute="Comment" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>+				<IncludeRules context="##Comments" />+				<DetectIdentifier/>+				<IncludeRules context="stringescape"/>+			</context>++			<context name="Single A-comment" attribute="Comment" lineEndContext="#pop!UnfinishedStringError">+				<DetectSpaces/>+				<DetectChar attribute="Comment" char="'" context="#pop"/>+				<IncludeRules context="##Comments" />+				<DetectIdentifier/>+				<IncludeRules context="stringescape"/>+			</context>++			<context name="Single Q-comment" attribute="Comment" lineEndContext="#pop!UnfinishedStringError">+				<DetectSpaces/>+				<DetectChar attribute="Comment" char="&quot;" context="#pop"/>+				<IncludeRules context="##Comments" />+				<DetectIdentifier/>+				<IncludeRules context="stringescape"/>+			</context>++			<!-- Strings -->++			<!-- format characters -->+			<context name="stringformat" attribute="String Substitution" lineEndContext="#stay">+				<RegExpr attribute="String Substitution" String="&strsubstitution_py2;|&strsubstitution_py3;" context="#stay"/>+				<Detect2Chars attribute="String Substitution" char="{" char1="{" context="#stay" />+				<Detect2Chars attribute="String Substitution" char="}" char1="}" context="#stay" />+			</context>++			<!-- escape characters -->+			<context name="stringescape" attribute="String Char" lineEndContext="#stay">+				<!-- As this highlighting style is for both, Python 2 and 3,+				we do not know if a normal string is “unicode” or not. So we -->+				<DetectChar char="\" lookAhead="1" context="stringescape2"/>+			</context>+			<context name="stringescape2" attribute="String Char" lineEndContext="#pop">+				<RegExpr attribute="String Char" String="\\[\\'&quot;abfnrtv]|\\[0-7]{1,3}|&escapedHexUni;" context="#pop"/>+				<LineContinue attribute="Operator" context="#pop"/>+				<RegExpr attribute="Error" String="." context="#pop"/>+			</context>++			<!-- escape characters -->+			<context name="bytesescape" attribute="String Char" lineEndContext="#stay">+				<!-- As this highlighting style is for both, Python 2 and 3,+				we do not know if a normal string is “unicode” or not. So we+				-->+				<DetectChar char="\" lookAhead="1" context="bytesescape2"/>+			</context>+			<context name="bytesescape2" attribute="String Char" lineEndContext="#pop">+				<RegExpr attribute="String Char" String="\\[\\'&quot;abfnrtv]|\\[0-7]{1,3}|&escapedHex;" context="#pop"/>+				<LineContinue attribute="Operator" context="#pop"/>+				<RegExpr attribute="Error" String="." context="#pop"/>+			</context>++			<!-- f-literals -->+			<context name="stringinterpolation" attribute="F-String" lineEndContext="#stay">+				<Detect2Chars attribute="String Char" char="{" char1="{" context="#stay"/>+				<DetectChar attribute="String Substitution" char="{" context="String Interpolation"/>+				<Detect2Chars attribute="String Char" char="}" char1="}" context="#stay"/>+				<DetectChar attribute="Error" char="}" context="#stay"/>+			</context>+			<context name="String Interpolation" attribute="String Substitution" lineEndContext="#stay">+				<RegExpr attribute="String Substitution" String="&format_spec;\}" context="#pop"/>+				<IncludeRules context="Normal"/> <!-- TODO: create expression context instead -->+			</context>+++			<!--+			It follows a Binary tree of string kinds (not even touching byte literals).+			The levels are:+			1. triple- vs. single-quoted+			2. apostrophe vs. quotation mark+			3. static vs. interpolated (f-literal)+			4. escaped vs. raw+			Adding byte literals wouldn’t make the current 2⁴ into 2⁵ contexts, as there are no byte f-literals+			-->++			<!-- Triple-quoted A-strings -->+			<context name="Triple A-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces attribute="String"/>+				<DetectIdentifier attribute="String"/>+				<IncludeRules context="stringescape"/>+				<IncludeRules context="stringformat"/>+				<StringDetect attribute="String" String="'''" context="#pop" endRegion="Triple A-region"/>+			</context>++			<context name="Raw Triple A-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces attribute="Raw String"/>+				<DetectIdentifier attribute="Raw String"/>+				<Detect2Chars attribute="Raw String" char="\" char1="'"/>+				<Detect2Chars attribute="Raw String" char="\" char1="\"/>+				<IncludeRules context="stringformat"/>+				<StringDetect attribute="Raw String" String="'''" context="#pop" endRegion="Triple A-region"/>+			</context>++			<context name="Triple A-F-String" attribute="F-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces attribute="F-String"/>+				<DetectIdentifier attribute="F-String"/>+				<IncludeRules context="stringescape"/>+				<IncludeRules context="stringinterpolation"/>+				<StringDetect attribute="F-String" String="'''" context="#pop" endRegion="Triple A-region"/>+			</context>++			<context name="Raw Triple A-F-String" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces attribute="Raw F-String"/>+				<DetectIdentifier attribute="Raw F-String"/>+				<Detect2Chars attribute="Raw F-String" char="\" char1="'"/>+				<Detect2Chars attribute="Raw F-String" char="\" char1="\"/>+				<IncludeRules context="stringinterpolation"/>+				<StringDetect attribute="Raw F-String" String="'''" context="#pop" endRegion="Triple A-region"/>+			</context>++			<context name="Triple A-B-String" attribute="B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<RegExpr attribute="B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|'(?!''))++"/>+				<IncludeRules context="bytesescape"/>+				<StringDetect attribute="B-String" String="'''" context="#pop" endRegion="Triple A-region"/>+				<RegExpr attribute="Error" String="."/>+			</context>++			<context name="Raw Triple A-B-String" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<RegExpr attribute="Raw B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|\\.?|'(?!''))++"/>+				<StringDetect attribute="Raw B-String" String="'''" context="#pop" endRegion="Triple A-region"/>+				<RegExpr attribute="Error" String="."/>+			</context>++			<!-- Triple-quoted Q-strings -->+			<context name="Triple Q-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces attribute="String"/>+				<DetectIdentifier attribute="String"/>+				<IncludeRules context="stringescape"/>+				<IncludeRules context="stringformat"/>+				<StringDetect attribute="String" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>+			</context>++			<context name="Raw Triple Q-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces attribute="Raw String"/>+				<DetectIdentifier attribute="Raw String"/>+				<Detect2Chars attribute="Raw String" char="\" char1="&quot;"/>+				<Detect2Chars attribute="Raw String" char="\" char1="\"/>+				<IncludeRules context="stringformat"/>+				<StringDetect attribute="Raw String" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>+			</context>++			<context name="Triple Q-F-String" attribute="F-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces attribute="F-String"/>+				<DetectIdentifier attribute="F-String"/>+				<IncludeRules context="stringescape"/>+				<IncludeRules context="stringinterpolation"/>+				<StringDetect attribute="F-String" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>+			</context>++			<context name="Raw Triple Q-F-String" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces attribute="Raw F-String"/>+				<DetectIdentifier attribute="Raw F-String"/>+				<Detect2Chars attribute="Raw F-String" char="\" char1="&quot;"/>+				<Detect2Chars attribute="Raw F-String" char="\" char1="\"/>+				<IncludeRules context="stringinterpolation"/>+				<StringDetect attribute="Raw F-String" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>+			</context>++			<context name="Triple Q-B-String" attribute="B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<RegExpr attribute="B-String" String="([\x20\x21\x23-\x5B\x5D-\x7E]++|&quot;(?!&quot;&quot;))++"/>+				<IncludeRules context="bytesescape"/>+				<StringDetect attribute="B-String" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>+				<RegExpr attribute="Error" String="."/>+			</context>++			<context name="Raw Triple Q-B-String" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<RegExpr attribute="Raw B-String" String="([\x20\x21\x23-\x5B\x5D-\x7E]++|\\.?|&quot;(?!&quot;&quot;))++"/>+				<StringDetect attribute="Raw B-String" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>+				<RegExpr attribute="Error" String="."/>+			</context>+++			<!-- Single-quoted A-strings -->+			<context name="Single A-string" attribute="String" lineEndContext="#pop!UnfinishedStringError">+				<DetectSpaces attribute="String"/>+				<DetectIdentifier attribute="String"/>+				<IncludeRules context="stringescape"/>+				<IncludeRules context="stringformat"/>+				<DetectChar attribute="String" char="'" context="#pop"/>+			</context>++			<context name="Raw A-string" attribute="Raw String" lineEndContext="#pop!UnfinishedStringError">+				<DetectSpaces attribute="Raw String"/>+				<DetectIdentifier attribute="Raw String"/>+				<Detect2Chars attribute="Raw String" char="\" char1="'"/>+				<Detect2Chars attribute="Raw String" char="\" char1="\"/>+				<IncludeRules context="stringformat"/>+				<DetectChar attribute="Raw String" char="'" context="#pop"/>+				<LineContinue attribute="Raw String" context="#stay"/>+			</context>++			<context name="Single A-F-String" attribute="F-String" lineEndContext="#pop!UnfinishedStringError">+				<DetectSpaces attribute="F-String"/>+				<DetectIdentifier attribute="F-String"/>+				<IncludeRules context="stringescape"/>+				<IncludeRules context="stringinterpolation"/>+				<DetectChar attribute="F-String" char="'" context="#pop"/>+			</context>++			<context name="Raw A-F-String" attribute="Raw F-String" lineEndContext="#pop!UnfinishedStringError">+				<DetectSpaces attribute="Raw F-String"/>+				<DetectIdentifier attribute="Raw F-String"/>+				<Detect2Chars attribute="Raw F-String" char="\" char1="'"/>+				<Detect2Chars attribute="Raw F-String" char="\" char1="\"/>+				<IncludeRules context="stringinterpolation"/>+				<DetectChar attribute="Raw F-String" char="'" context="#pop"/>+				<LineContinue attribute="Raw F-String" context="#stay"/>+			</context>++			<context name="Single A-B-String" attribute="B-String" lineEndContext="#pop!UnfinishedStringError">+				<RegExpr attribute="B-String" String="[\x20-\x26\x28-\x5B\x5D-\x7E]++"/>+				<IncludeRules context="bytesescape"/>+				<DetectChar attribute="B-String" char="'" context="#pop"/>+				<RegExpr attribute="Error" String="."/>+			</context>++			<context name="Raw A-B-String" attribute="Raw B-String" lineEndContext="#pop!UnfinishedStringError">+				<RegExpr attribute="Raw B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|\\.)++"/>+				<DetectChar attribute="Raw B-String" char="'" context="#pop"/>+				<LineContinue attribute="Raw B-String" context="#stay"/>+				<RegExpr attribute="Error" String="."/>+			</context>++			<!-- Single-quoted Q-strings -->+			<context name="Single Q-string" attribute="String" lineEndContext="#pop!UnfinishedStringError">+				<DetectSpaces attribute="String"/>+				<DetectIdentifier attribute="String"/>+				<IncludeRules context="stringescape"/>+				<IncludeRules context="stringformat"/>+				<DetectChar attribute="String" char="&quot;" context="#pop"/>+			</context>++			<context name="Raw Q-string" attribute="Raw String" lineEndContext="#pop!UnfinishedStringError">+				<DetectSpaces attribute="Raw String"/>+				<DetectIdentifier attribute="Raw String"/>+				<Detect2Chars attribute="Raw String" char="\" char1="&quot;"/>+				<Detect2Chars attribute="Raw String" char="\" char1="\"/>+				<IncludeRules context="stringformat"/>+				<DetectChar attribute="Raw String" char="&quot;" context="#pop"/>+				<LineContinue attribute="Raw String" context="#stay"/>+			</context>++			<context name="Single Q-F-String" attribute="F-String" lineEndContext="#pop!UnfinishedStringError">+				<DetectSpaces attribute="F-String"/>+				<DetectIdentifier attribute="F-String"/>+				<IncludeRules context="stringescape"/>+				<IncludeRules context="stringinterpolation"/>+				<DetectChar attribute="F-String" char="&quot;" context="#pop"/>+			</context>++			<context name="Raw Q-F-String" attribute="Raw F-String" lineEndContext="#pop!UnfinishedStringError">+				<DetectSpaces attribute="Raw F-String"/>+				<DetectIdentifier attribute="Raw F-String"/>+				<Detect2Chars attribute="Raw F-String" char="\" char1="&quot;"/>+				<Detect2Chars attribute="Raw F-String" char="\" char1="\"/>+				<IncludeRules context="stringinterpolation"/>+				<DetectChar attribute="Raw F-String" char="&quot;" context="#pop"/>+				<LineContinue attribute="Raw F-String" context="#stay"/>+			</context>++			<context name="Single Q-B-String" attribute="B-String" lineEndContext="#pop!UnfinishedStringError">+				<RegExpr attribute="B-String" String="[\x20\x21\x23-\x5B\x5D-\x7E]++"/>+				<IncludeRules context="bytesescape"/>+				<DetectChar attribute="B-String" char="&quot;" context="#pop"/>+				<RegExpr attribute="Error" String="."/>+			</context>++			<context name="Raw Q-B-String" attribute="Raw B-String" lineEndContext="#pop!UnfinishedStringError">+				<RegExpr attribute="Raw B-String" String="([\x20\x21\x23-\x5B\x5D-\x7E]++|\\.)++"/>+				<DetectChar attribute="Raw B-String" char="&quot;" context="#pop"/>+				<LineContinue attribute="Raw B-String" context="#stay"/>+				<RegExpr attribute="Error" String="."/>+			</context>++			<!-- Regex -->++			<!--++			doctest: NOTE|XXX|HACK|FIXME|BUG|TODO+			que dit la doc ?++			-->++			<!-- Regex r'...' -->++			<context name="Raw A-Regex" attribute="Raw String" lineEndContext="#pop!UnfinishedStringError">+				<DetectSpaces attribute="Raw String"/>+				<DetectIdentifier attribute="Raw String"/>+				<StringDetect String="[^]" attribute="Regex Set" context="Raw A-Regex Set"/>+				<StringDetect String="[]" attribute="Regex Set" context="Raw A-Regex Set"/>+				<StringDetect String="[" attribute="Regex Set" context="Raw A-Regex Set"/>+				<StringDetect String="(?" lookAhead="1" context="Raw A-Regex Parent"/>+				<StringDetect String="(" attribute="Regex Capturing" context="Raw A-Regex Capture"/>+				<StringDetect String="'" attribute="Raw String" context="#pop"/>+				<IncludeRules context="RegexStringCommon"/>+			</context>++			<context name="Raw A-Regex Parent" attribute="Regex Set" lineEndContext="#pop">+				<StringDetect String="(?:" attribute="Regex Non-Capturing" context="#pop!Raw A-Regex NonCapture"/>+				<StringDetect String="(?P&lt;" lookAhead="1" context="Raw A-Regex NamedCapture"/>+				<StringDetect String="(?#" attribute="Comment" context="Raw A-Regex ParentComment"/>+				<!-- regex package support: (?<...>) for (?P<...>) -->+				<StringDetect String="(?&lt;" lookAhead="1" context="Raw A-Regex NamedCapture"/>+				<!-- regex package support:+					(?b), (?e), (?p), (?r), (?V0), (?V1), (?f), (?w) (?-a), (?-f), (?-L), (?-u), (?-w)+					(?|...) -->+				<RegExpr String="\((?=\?(([aiLmsuxfwbepr]+|V[01])*(-[imsxafLuw]+)?:|[=>!|]|&lt;[=!]|\())" attribute="Regex Parenthesis" context="Raw A-Regex ParentOptions"/>+				<IncludeRules context="RegexParentCommon"/>+				<StringDetect String="(" attribute="Regex Parenthesis" context="Raw A-Regex ParentError"/>+			</context>++			<context name="Raw A-Regex ParentOptions" attribute="Regex Parenthesis Options" lineEndContext="#pop">+			  <!-- regex package support: | -->+				<AnyChar String=":=>!|" attribute="Regex Parenthesis Options" context="#pop#pop!Raw A-Regex Parenthesis"/>+				<StringDetect String="(" attribute="Regex Parenthesis Options" context="Raw A-Regex ParentCond"/>+			</context>+			<context name="Raw A-Regex ParentCond" attribute="Raw String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop#pop!Raw A-Regex Parenthesis">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw A-Regex Parenthesis"/>+				<RegExpr String="\b[_[:alpha:]]\w+|\b[0-9]{1,2}" attribute="Regex Backreference"/>+			  <!-- regex package support: -->+				<RegExpr String="\?&lt;?[=!]" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw A-Regex LookaroundInCond"/>+			</context>++			<context name="Raw A-Regex ParentError" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String="?" attribute="Error" context="#pop#pop!Raw A-Regex Parenthesis"/>+			</context>++			<context name="Raw A-Regex NamedCapture" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String="(" attribute="Regex Capturing"/>+				<!-- regex package support: P is optional -->+				<RegExpr String="\?P?&lt;(([_[:alpha:]]\w*)?>)?" attribute="Regex Parenthesis Options" context="#pop#pop!Raw A-Regex Capture"/>+			</context>++			<context name="Raw A-Regex LookaroundInCond" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop!Raw A-Regex Parenthesis"/>+				<IncludeRules context="Raw A-Regex ParentInside"/>+			</context>++			<context name="Raw A-Regex Parenthesis" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Parenthesis" context="#pop"/>+				<IncludeRules context="Raw A-Regex ParentInside"/>+			</context>++			<context name="Raw A-Regex Capture" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Capturing" context="#pop"/>+				<IncludeRules context="Raw A-Regex ParentInside"/>+			</context>++			<context name="Raw A-Regex NonCapture" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Non-Capturing" context="#pop"/>+				<IncludeRules context="Raw A-Regex ParentInside"/>+			</context>++			<context name="Raw A-Regex ParentInside" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String="'" lookAhead="1" context="#pop"/>+				<IncludeRules context="Raw A-Regex"/>+			</context>++			<context name="Raw A-Regex ParentComment" attribute="Comment" lineEndContext="#pop">+				<IncludeRules context="RegexCommentCommon"/>+				<StringDetect String="'" lookAhead="1" context="#pop#pop"/>+			</context>++			<context name="Raw A-Regex Set" attribute="Regex Set" lineEndContext="#pop">+				<IncludeRules context="RegexSetCommon"/>+				<StringDetect String="'" lookAhead="1" context="#pop"/>+			</context>+++			<!-- Regex r"..." -->++			<context name="Raw Q-Regex" attribute="Raw String" lineEndContext="#pop!UnfinishedStringError">+				<DetectSpaces attribute="Raw String"/>+				<DetectIdentifier attribute="Raw String"/>+				<StringDetect String="[^]" attribute="Regex Set" context="Raw Q-Regex Set"/>+				<StringDetect String="[]" attribute="Regex Set" context="Raw Q-Regex Set"/>+				<StringDetect String="[" attribute="Regex Set" context="Raw Q-Regex Set"/>+				<StringDetect String="(?" lookAhead="1" context="Raw Q-Regex Parent"/>+				<StringDetect String="(" attribute="Regex Capturing" context="Raw Q-Regex Capture"/>+				<StringDetect String="&quot;" attribute="Raw String" context="#pop"/>+				<IncludeRules context="RegexStringCommon"/>+			</context>++			<context name="Raw Q-Regex Parent" attribute="Regex Set" lineEndContext="#pop">+				<StringDetect String="(?:" attribute="Regex Non-Capturing" context="#pop!Raw Q-Regex NonCapture"/>+				<StringDetect String="(?P&lt;" lookAhead="1" context="Raw Q-Regex NamedCapture"/>+				<StringDetect String="(?#" attribute="Comment" context="Raw Q-Regex ParentComment"/>+				<!-- regex package support: (?<...>) for (?P<...>) -->+				<StringDetect String="(?&lt;" lookAhead="1" context="Raw Q-Regex NamedCapture"/>+				<!-- regex package support:+					(?b), (?e), (?p), (?r), (?V0), (?V1), (?f), (?w) (?-a), (?-f), (?-L), (?-u), (?-w)+					(?|...) -->+				<RegExpr String="\((?=\?(([aiLmsuxfwbepr]+|V[01])*(-[imsxafLuw]+)?:|[=>!|]|&lt;[=!]|\())" attribute="Regex Parenthesis" context="Raw Q-Regex ParentOptions"/>+				<IncludeRules context="RegexParentCommon"/>+				<StringDetect String="(" attribute="Regex Parenthesis" context="Raw Q-Regex ParentError"/>+			</context>++			<context name="Raw Q-Regex ParentOptions" attribute="Regex Parenthesis Options" lineEndContext="#pop">+			  <!-- regex package support: | -->+				<AnyChar String=":=>!|" attribute="Regex Parenthesis Options" context="#pop#pop!Raw Q-Regex Parenthesis"/>+				<StringDetect String="(" attribute="Regex Parenthesis Options" context="Raw Q-Regex ParentCond"/>+			</context>+			<context name="Raw Q-Regex ParentCond" attribute="Raw String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop#pop!Raw Q-Regex Parenthesis">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw Q-Regex Parenthesis"/>+				<RegExpr String="\b[_[:alpha:]]\w+|\b[0-9]{1,2}" attribute="Regex Backreference"/>+			  <!-- regex package support: lookaround in conditional pattern: (?(?!...)a|b) etc -->+				<RegExpr String="\?&lt;?[=!]" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw Q-Regex LookaroundInCond"/>+			</context>++			<context name="Raw Q-Regex ParentError" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String="?" attribute="Error" context="#pop#pop!Raw Q-Regex Parenthesis"/>+			</context>++			<context name="Raw Q-Regex NamedCapture" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String="(" attribute="Regex Capturing"/>+				<!-- regex package support: P is optional -->+				<RegExpr String="\?P?&lt;(([_[:alpha:]]\w*)?>)?" attribute="Regex Parenthesis Options" context="#pop#pop!Raw Q-Regex Capture"/>+			</context>++			<context name="Raw Q-Regex LookaroundInCond" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop!Raw Q-Regex Parenthesis"/>+				<IncludeRules context="Raw Q-Regex ParentInside"/>+			</context>++			<context name="Raw Q-Regex Parenthesis" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Parenthesis" context="#pop"/>+				<IncludeRules context="Raw Q-Regex ParentInside"/>+			</context>++			<context name="Raw Q-Regex Capture" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Capturing" context="#pop"/>+				<IncludeRules context="Raw Q-Regex ParentInside"/>+			</context>++			<context name="Raw Q-Regex NonCapture" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Non-Capturing" context="#pop"/>+				<IncludeRules context="Raw Q-Regex ParentInside"/>+			</context>++			<context name="Raw Q-Regex ParentInside" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String="&quot;" lookAhead="1" context="#pop"/>+				<IncludeRules context="Raw Q-Regex"/>+			</context>++			<context name="Raw Q-Regex ParentComment" attribute="Comment" lineEndContext="#pop">+				<IncludeRules context="RegexCommentCommon"/>+				<StringDetect String="&quot;" lookAhead="1" context="#pop#pop"/>+			</context>++			<context name="Raw Q-Regex Set" attribute="Regex Set" lineEndContext="#pop">+				<IncludeRules context="RegexSetCommon"/>+				<StringDetect String="&quot;" lookAhead="1" context="#pop"/>+			</context>+++			<!-- Regex r'''...''' -->++			<context name="Raw Triple A-Regex" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces attribute="Raw String"/>+				<DetectIdentifier attribute="Raw String"/>+				<StringDetect String="[^]" attribute="Regex Set" context="Raw Triple A-Regex Set"/>+				<StringDetect String="[]" attribute="Regex Set" context="Raw Triple A-Regex Set"/>+				<StringDetect String="[" attribute="Regex Set" context="Raw Triple A-Regex Set"/>+				<StringDetect String="(?" lookAhead="1" context="Raw Triple A-Regex Parent"/>+				<StringDetect String="(" attribute="Regex Capturing" context="Raw Triple A-Regex Capture" beginRegion="RegParent"/>+				<StringDetect String="#" attribute="Comment" context="Raw Triple A-Regex Comment"/>+				<StringDetect String="'''" attribute="Raw String" context="#pop" endRegion="Triple A-region"/>+				<IncludeRules context="RegexStringCommon"/>+			</context>++			<context name="Raw Triple A-Regex Comment" attribute="Comment" lineEndContext="#pop">+				<StringDetect String="'''" lookAhead="1" context="#pop"/>+				<LineContinue attribute="Operator"/>+				<RegExpr String="([^'\\]++|\\.|'(?!''))++" attribute="Comment"/>+			</context>++			<context name="Raw Triple A-Regex Parent" attribute="Regex Set" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String="(?:" attribute="Regex Non-Capturing" context="#pop!Raw Triple A-Regex NonCapture" beginRegion="RegParent"/>+				<StringDetect String="(?P&lt;" lookAhead="1" context="Raw Triple A-Regex NamedCapture"/>+				<StringDetect String="(?#" attribute="Comment" context="Raw Triple A-Regex ParentComment" beginRegion="RegParent"/>+				<!-- regex package support: (?<...>) for (?P<...>) -->+				<StringDetect String="(?&lt;" lookAhead="1" context="Raw Triple A-Regex NamedCapture"/>+				<!-- regex package support:+					(?b), (?e), (?p), (?r), (?V0), (?V1), (?f), (?w) (?-a), (?-f), (?-L), (?-u), (?-w)+					(?|...) -->+				<RegExpr String="\((?=\?(([aiLmsuxfwbepr]+|V[01])*(-[imsxafLuw]+)?:|[=>!|]|&lt;[=!]|\())" attribute="Regex Parenthesis" context="Raw Triple A-Regex ParentOptions" beginRegion="RegParent"/>+				<IncludeRules context="RegexParentCommon"/>+				<StringDetect String="(" attribute="Regex Parenthesis" context="Raw Triple A-Regex ParentError" beginRegion="RegParent"/>+			</context>++			<context name="Raw Triple A-Regex ParentOptions" attribute="Regex Parenthesis Options" lineEndContext="#stay" noIndentationBasedFolding="true">+			  <!-- regex package support: | -->+				<AnyChar String=":=>!|" attribute="Regex Parenthesis Options" context="#pop#pop!Raw Triple A-Regex Parenthesis"/>+				<StringDetect String="(" attribute="Regex Parenthesis Options" context="Raw Triple A-Regex ParentCond" beginRegion="RegParent"/>+			</context>+			<context name="Raw Triple A-Regex ParentCond" attribute="Raw String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop#pop!Raw Triple A-Regex Parenthesis">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw Triple A-Regex Parenthesis" endRegion="RegParent"/>+				<RegExpr String="\b[_[:alpha:]]\w+|\b[0-9]{1,2}" attribute="Regex Backreference"/>+			  <!-- regex package support: -->+				<RegExpr String="\?&lt;?[=!]" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw Triple A-Regex LookaroundInCond"/>+			</context>++			<context name="Raw Triple A-Regex ParentError" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String="?" attribute="Error" context="#pop#pop!Raw Triple A-Regex Parenthesis"/>+			</context>++			<context name="Raw Triple A-Regex NamedCapture" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String="(" attribute="Regex Capturing" beginRegion="RegParent"/>+				<!-- regex package support: P is optional -->+				<RegExpr String="\?P?&lt;(([_[:alpha:]]\w*)?>)?" attribute="Regex Parenthesis Options" context="#pop#pop!Raw Triple A-Regex Capture"/>+			</context>++			<context name="Raw Triple A-Regex LookaroundInCond" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop!Raw Triple A-Regex Parenthesis" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple A-Regex ParentInside"/>+			</context>++			<context name="Raw Triple A-Regex Parenthesis" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Parenthesis" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple A-Regex ParentInside"/>+			</context>++			<context name="Raw Triple A-Regex Capture" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Capturing" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple A-Regex ParentInside"/>+			</context>++			<context name="Raw Triple A-Regex NonCapture" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Non-Capturing" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple A-Regex ParentInside"/>+			</context>++			<context name="Raw Triple A-Regex ParentInside" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String="'''" lookAhead="1" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple A-Regex"/>+			</context>++			<context name="Raw Triple A-Regex ParentComment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">+				<IncludeRules context="RegexTripleCommentCommon"/>+				<StringDetect String="'''" lookAhead="1" context="#pop#pop" endRegion="RegParent"/>+			</context>++			<context name="Raw Triple A-Regex Set" attribute="Regex Set" lineEndContext="#stay" noIndentationBasedFolding="true">+				<IncludeRules context="RegexSetCommon"/>+				<StringDetect String="'''" lookAhead="1" context="#pop"/>+			</context>+++			<!-- Regex r"""...""" -->++			<context name="Raw Triple Q-Regex" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces attribute="Raw String"/>+				<DetectIdentifier attribute="Raw String"/>+				<StringDetect String="[^]" attribute="Regex Set" context="Raw Triple Q-Regex Set"/>+				<StringDetect String="[]" attribute="Regex Set" context="Raw Triple Q-Regex Set"/>+				<StringDetect String="[" attribute="Regex Set" context="Raw Triple Q-Regex Set"/>+				<StringDetect String="(?" lookAhead="1" context="Raw Triple Q-Regex Parent"/>+				<StringDetect String="(" attribute="Regex Capturing" context="Raw Triple Q-Regex Capture" beginRegion="RegParent"/>+				<StringDetect String="#" attribute="Comment" context="Raw Triple Q-Regex Comment"/>+				<StringDetect String="&quot;&quot;&quot;" attribute="Raw String" context="#pop" endRegion="Triple Q-region"/>+				<IncludeRules context="RegexStringCommon"/>+			</context>++			<context name="Raw Triple Q-Regex Comment" attribute="Comment" lineEndContext="#pop">+				<StringDetect String="&quot;&quot;&quot;" lookAhead="1" context="#pop"/>+				<LineContinue attribute="Operator"/>+				<RegExpr String="([^&quot;\\]++|\\.|&quot;(?!&quot;&quot;))++" attribute="Comment"/>+			</context>++			<context name="Raw Triple Q-Regex Parent" attribute="Regex Set" lineEndContext="#pop">+				<StringDetect String="(?:" attribute="Regex Non-Capturing" context="#pop!Raw Triple Q-Regex NonCapture" beginRegion="RegParent"/>+				<StringDetect String="(?P&lt;" lookAhead="1" context="Raw Triple Q-Regex NamedCapture"/>+				<StringDetect String="(?#" attribute="Comment" context="Raw Triple Q-Regex ParentComment" beginRegion="RegParent"/>+				<!-- regex package support: (?<...>) for (?P<...>) -->+				<StringDetect String="(?&lt;" lookAhead="1" context="Raw Triple Q-Regex NamedCapture"/>+				<!-- regex package support:+					(?b), (?e), (?p), (?r), (?V0), (?V1), (?f), (?w) (?-a), (?-f), (?-L), (?-u), (?-w)+					(?|...) -->+				<RegExpr String="\((?=\?(([aiLmsuxfwbepr]+|V[01])*(-[imsxafLuw]+)?:|[=>!|]|&lt;[=!]|\())" attribute="Regex Parenthesis" context="Raw Triple Q-Regex ParentOptions" beginRegion="RegParent"/>+				<IncludeRules context="RegexParentCommon"/>+				<StringDetect String="(" attribute="Regex Parenthesis" context="Raw Triple Q-Regex ParentError" beginRegion="RegParent"/>+			</context>++			<context name="Raw Triple Q-Regex ParentOptions" attribute="Regex Parenthesis Options" lineEndContext="#pop">+			  <!-- regex package support: | -->+				<AnyChar String=":=>!|" attribute="Regex Parenthesis Options" context="#pop#pop!Raw Triple Q-Regex Parenthesis"/>+				<StringDetect String="(" attribute="Regex Parenthesis Options" context="Raw Triple Q-Regex ParentCond" beginRegion="RegParent"/>+			</context>+			<context name="Raw Triple Q-Regex ParentCond" attribute="Raw String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop#pop!Raw Triple Q-Regex Parenthesis">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw Triple Q-Regex Parenthesis" endRegion="RegParent"/>+				<RegExpr String="\b[_[:alpha:]]\w+|\b[0-9]{1,2}" attribute="Regex Backreference"/>+			  <!-- regex package support: -->+				<RegExpr String="\?&lt;?[=!]" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw Triple Q-Regex LookaroundInCond"/>+			</context>++			<context name="Raw Triple Q-Regex ParentError" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String="?" attribute="Error" context="#pop#pop!Raw Triple Q-Regex Parenthesis"/>+			</context>++			<context name="Raw Triple Q-Regex NamedCapture" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String="(" attribute="Regex Capturing" beginRegion="RegParent"/>+				<!-- regex package support: P is optional -->+				<RegExpr String="\?P?&lt;(([_[:alpha:]]\w*)?>)?" attribute="Regex Parenthesis Options" context="#pop#pop!Raw Triple Q-Regex Capture"/>+			</context>++			<context name="Raw Triple Q-Regex LookaroundInCond" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop!Raw Triple Q-Regex Parenthesis" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple Q-Regex ParentInside"/>+			</context>++			<context name="Raw Triple Q-Regex Parenthesis" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Parenthesis" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple Q-Regex ParentInside"/>+			</context>++			<context name="Raw Triple Q-Regex Capture" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Capturing" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple Q-Regex ParentInside"/>+			</context>++			<context name="Raw Triple Q-Regex NonCapture" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Non-Capturing" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple Q-Regex ParentInside"/>+			</context>++			<context name="Raw Triple Q-Regex ParentInside" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String="&quot;&quot;&quot;" lookAhead="1" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple Q-Regex"/>+			</context>++			<context name="Raw Triple Q-Regex ParentComment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">+				<IncludeRules context="RegexTripleCommentCommon"/>+				<StringDetect String="&quot;&quot;&quot;" lookAhead="1" context="#pop#pop" endRegion="RegParent"/>+			</context>++			<context name="Raw Triple Q-Regex Set" attribute="Regex Set" lineEndContext="#stay" noIndentationBasedFolding="true">+				<IncludeRules context="RegexSetCommon"/>+				<StringDetect String="&quot;&quot;&quot;" lookAhead="1" context="#pop"/>+			</context>+++			<!-- Regex rb'...' -->++			<context name="Raw A-B-Regex" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<RegExpr attribute="Raw B-String" String="[ -#%&amp;,\-/->@-Z\]_-z~]++"/>+				<StringDetect String="[^]" attribute="Regex Set" context="Raw A-B-Regex Set"/>+				<StringDetect String="[]" attribute="Regex Set" context="Raw A-B-Regex Set"/>+				<StringDetect String="[" attribute="Regex Set" context="Raw A-B-Regex Set"/>+				<StringDetect String="(?" lookAhead="1" context="Raw A-B-Regex Parent"/>+				<StringDetect String="(" attribute="Regex Capturing" context="Raw A-B-Regex Capture"/>+				<StringDetect String="'" attribute="Raw B-String" context="#pop"/>+				<IncludeRules context="RegexBStringCommon"/>+			</context>++			<context name="Raw A-B-Regex Parent" attribute="Regex Set" lineEndContext="#pop">+				<StringDetect String="(?:" attribute="Regex Non-Capturing" context="#pop!Raw A-B-Regex NonCapture"/>+				<StringDetect String="(?P&lt;" lookAhead="1" context="Raw A-B-Regex NamedCapture"/>+				<StringDetect String="(?#" attribute="Comment" context="Raw A-Regex ParentComment"/>+				<!-- regex package support: (?<...>) for (?P<...>) -->+				<StringDetect String="(?&lt;" lookAhead="1" context="Raw A-B-Regex NamedCapture"/>+				<!-- regex package support:+					(?b), (?e), (?p), (?r), (?V0), (?V1), (?f), (?w) (?-a), (?-f), (?-L), (?-u), (?-w)+					(?|...) -->+				<RegExpr String="\((?=\?(([aiLmsuxfwbepr]+|V[01])*(-[imsxafLuw]+)?:|[=>!|]|&lt;[=!]|\())" attribute="Regex Parenthesis" context="Raw A-B-Regex ParentOptions"/>+				<IncludeRules context="RegexParentCommon"/>+				<StringDetect String="(" attribute="Regex Parenthesis" context="Raw A-B-Regex ParentError"/>+			</context>++			<context name="Raw A-B-Regex ParentOptions" attribute="Regex Parenthesis Options" lineEndContext="#pop">+			  <!-- regex package support: | -->+				<AnyChar String=":=>!|" attribute="Regex Parenthesis Options" context="#pop#pop!Raw A-B-Regex Parenthesis"/>+				<StringDetect String="(" attribute="Regex Parenthesis Options" context="Raw A-B-Regex ParentCond"/>+			</context>+			<context name="Raw A-B-Regex ParentCond" attribute="Raw B-String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop#pop!Raw A-B-Regex Parenthesis">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw A-B-Regex Parenthesis"/>+				<RegExpr String="\b[_a-zA-Z][_a-zA-Z0-9]+|\b[0-9]{1,2}" attribute="Regex Backreference"/>+			  <!-- regex package support: -->+				<RegExpr String="\?&lt;?[=!]" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw A-B-Regex LookaroundInCond"/>+			</context>++			<context name="Raw A-B-Regex ParentError" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String="?" attribute="Error" context="#pop#pop!Raw A-B-Regex Parenthesis"/>+			</context>++			<context name="Raw A-B-Regex NamedCapture" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String="(" attribute="Regex Capturing"/>+				<!-- regex package support: P is optional -->+				<RegExpr String="\?P?&lt;(([__a-zA-Z][_a-zA-Z0-9]*)?>)?" attribute="Regex Parenthesis Options" context="#pop#pop!Raw A-B-Regex Capture"/>+			</context>++			<context name="Raw A-B-Regex LookaroundInCond" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop!Raw A-B-Regex Parenthesis"/>+				<IncludeRules context="Raw A-B-Regex ParentInside"/>+			</context>++			<context name="Raw A-B-Regex Parenthesis" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Parenthesis" context="#pop"/>+				<IncludeRules context="Raw A-B-Regex ParentInside"/>+			</context>++			<context name="Raw A-B-Regex Capture" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Capturing" context="#pop"/>+				<IncludeRules context="Raw A-B-Regex ParentInside"/>+			</context>++			<context name="Raw A-B-Regex NonCapture" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Non-Capturing" context="#pop"/>+				<IncludeRules context="Raw A-B-Regex ParentInside"/>+			</context>++			<context name="Raw A-B-Regex ParentInside" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String="'" lookAhead="1" context="#pop"/>+				<IncludeRules context="Raw A-B-Regex"/>+			</context>++			<context name="Raw A-B-Regex Set" attribute="Regex Set" lineEndContext="#pop">+				<RegExpr attribute="Regex Set" String="[ -&amp;(-Z^-~]++"/>+				<IncludeRules context="RegexBStringSetCommon"/>+				<StringDetect String="'" lookAhead="1" context="#pop"/>+				<RegExpr attribute="Error" String="."/>+			</context>+++			<!-- Regex rb"..." -->++			<context name="Raw Q-B-Regex" attribute="Raw B-String" lineEndContext="#pop!UnfinishedStringError">+				<RegExpr attribute="Raw B-String" String="[ !#%-',\-/->@-Z\]_-z~]++"/>+				<StringDetect String="[^]" attribute="Regex Set" context="Raw Q-B-Regex Set"/>+				<StringDetect String="[]" attribute="Regex Set" context="Raw Q-B-Regex Set"/>+				<StringDetect String="[" attribute="Regex Set" context="Raw Q-B-Regex Set"/>+				<StringDetect String="(?" lookAhead="1" context="Raw Q-B-Regex Parent"/>+				<StringDetect String="(" attribute="Regex Capturing" context="Raw Q-B-Regex Capture"/>+				<StringDetect String="&quot;" attribute="Raw B-String" context="#pop"/>+				<IncludeRules context="RegexBStringCommon"/>+			</context>++			<context name="Raw Q-B-Regex Parent" attribute="Regex Set" lineEndContext="#pop">+				<StringDetect String="(?:" attribute="Regex Non-Capturing" context="#pop!Raw Q-B-Regex NonCapture"/>+				<StringDetect String="(?P&lt;" lookAhead="1" context="Raw Q-B-Regex NamedCapture"/>+				<StringDetect String="(?#" attribute="Comment" context="Raw Q-Regex ParentComment"/>+				<!-- regex package support: (?<...>) for (?P<...>) -->+				<StringDetect String="(?&lt;" lookAhead="1" context="Raw Q-B-Regex NamedCapture"/>+				<!-- regex package support:+					(?b), (?e), (?p), (?r), (?V0), (?V1), (?f), (?w) (?-a), (?-f), (?-L), (?-u), (?-w)+					(?|...) -->+				<RegExpr String="\((?=\?(([aiLmsuxfwbepr]+|V[01])*(-[imsxafLuw]+)?:|[=>!|]|&lt;[=!]|\())" attribute="Regex Parenthesis" context="Raw Q-B-Regex ParentOptions"/>+				<IncludeRules context="RegexParentCommon"/>+				<StringDetect String="(" attribute="Regex Parenthesis" context="Raw Q-B-Regex ParentError"/>+			</context>++			<context name="Raw Q-B-Regex ParentOptions" attribute="Regex Parenthesis Options" lineEndContext="#pop">+			  <!-- regex package support: | -->+				<AnyChar String=":=>!|" attribute="Regex Parenthesis Options" context="#pop#pop!Raw Q-B-Regex Parenthesis"/>+				<StringDetect String="(" attribute="Regex Parenthesis Options" context="Raw Q-B-Regex ParentCond"/>+			</context>+			<context name="Raw Q-B-Regex ParentCond" attribute="Raw B-String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop#pop!Raw Q-B-Regex Parenthesis">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw Q-B-Regex Parenthesis"/>+				<RegExpr String="\b[_a-zA-Z][_a-zA-Z0-9]+|\b[0-9]{1,2}" attribute="Regex Backreference"/>+			  <!-- regex package support: -->+				<RegExpr String="\?&lt;?[=!]" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw Q-B-Regex LookaroundInCond"/>+			</context>++			<context name="Raw Q-B-Regex ParentError" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String="?" attribute="Error" context="#pop#pop!Raw Q-B-Regex Parenthesis"/>+			</context>++			<context name="Raw Q-B-Regex NamedCapture" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String="(" attribute="Regex Capturing"/>+				<!-- regex package support: P is optional -->+				<RegExpr String="\?P?&lt;(([__a-zA-Z][_a-zA-Z0-9]*)?>)?" attribute="Regex Parenthesis Options" context="#pop#pop!Raw Q-B-Regex Capture"/>+			</context>++			<context name="Raw Q-B-Regex LookaroundInCond" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop!Raw Q-B-Regex Parenthesis"/>+				<IncludeRules context="Raw Q-B-Regex ParentInside"/>+			</context>++			<context name="Raw Q-B-Regex Parenthesis" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Parenthesis" context="#pop"/>+				<IncludeRules context="Raw Q-B-Regex ParentInside"/>+			</context>++			<context name="Raw Q-B-Regex Capture" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Capturing" context="#pop"/>+				<IncludeRules context="Raw Q-B-Regex ParentInside"/>+			</context>++			<context name="Raw Q-B-Regex NonCapture" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Non-Capturing" context="#pop"/>+				<IncludeRules context="Raw Q-B-Regex ParentInside"/>+			</context>++			<context name="Raw Q-B-Regex ParentInside" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String="&quot;" lookAhead="1" context="#pop"/>+				<IncludeRules context="Raw Q-B-Regex"/>+			</context>++			<context name="Raw Q-B-Regex Set" attribute="Regex Set" lineEndContext="#pop">+				<RegExpr attribute="Regex Set" String="[ !#-Z^-~]++"/>+				<IncludeRules context="RegexBStringSetCommon"/>+				<StringDetect String="&quot;" lookAhead="1" context="#pop"/>+				<RegExpr attribute="Error" String="."/>+			</context>+++			<!-- Regex rb'''...''' -->++			<context name="Raw Triple A-B-Regex" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<RegExpr attribute="Raw B-String" String="([ !&quot;%&amp;,\-/->@-Z\]_-z~]++|'(?!''))++"/>+				<StringDetect String="[^]" attribute="Regex Set" context="Raw Triple A-B-Regex Set"/>+				<StringDetect String="[]" attribute="Regex Set" context="Raw Triple A-B-Regex Set"/>+				<StringDetect String="[" attribute="Regex Set" context="Raw Triple A-B-Regex Set"/>+				<StringDetect String="(?" lookAhead="1" context="Raw Triple A-B-Regex Parent"/>+				<StringDetect String="(" attribute="Regex Capturing" context="Raw Triple A-B-Regex Capture" beginRegion="RegParent"/>+				<StringDetect String="#" attribute="Comment" context="Raw Triple A-B-Regex Comment"/>+				<StringDetect String="'''" attribute="Raw B-String" context="#pop" endRegion="Triple A-region"/>+				<IncludeRules context="RegexBStringCommon"/>+			</context>++			<context name="Raw Triple A-B-Regex Comment" attribute="Comment" lineEndContext="#pop">+				<StringDetect String="'''" lookAhead="1" context="#pop"/>+				<LineContinue attribute="Operator"/>+				<RegExpr String="([ -&amp;(-\[\]-~]++|\\.|'(?!''))++" attribute="Comment"/>+			</context>++			<context name="Raw Triple A-B-Regex Parent" attribute="Regex Set" lineEndContext="#pop">+				<StringDetect String="(?:" attribute="Regex Non-Capturing" context="#pop!Raw Triple A-B-Regex NonCapture" beginRegion="RegParent"/>+				<StringDetect String="(?P&lt;" lookAhead="1" context="Raw Triple A-B-Regex NamedCapture"/>+				<StringDetect String="(?#" attribute="Comment" context="Raw Triple A-Regex ParentComment" beginRegion="RegParent"/>+				<!-- regex package support: (?<...>) for (?P<...>) -->+				<StringDetect String="(?&lt;" lookAhead="1" context="Raw Triple A-B-Regex NamedCapture"/>+				<!-- regex package support:+					(?b), (?e), (?p), (?r), (?V0), (?V1), (?f), (?w) (?-a), (?-f), (?-L), (?-u), (?-w)+					(?|...) -->+				<RegExpr String="\((?=\?(([aiLmsuxfwbepr]+|V[01])*(-[imsxafLuw]+)?:|[=>!|]|&lt;[=!]|\())" attribute="Regex Parenthesis" context="Raw Triple A-B-Regex ParentOptions" beginRegion="RegParent"/>+				<IncludeRules context="RegexParentCommon"/>+				<StringDetect String="(" attribute="Regex Parenthesis" context="Raw Triple A-B-Regex ParentError" beginRegion="RegParent"/>+			</context>++			<context name="Raw Triple A-B-Regex ParentOptions" attribute="Regex Parenthesis Options" lineEndContext="#pop">+			  <!-- regex package support: | -->+				<AnyChar String=":=>!|" attribute="Regex Parenthesis Options" context="#pop#pop!Raw Triple A-B-Regex Parenthesis"/>+				<StringDetect String="(" attribute="Regex Parenthesis Options" context="Raw Triple A-B-Regex ParentCond" beginRegion="RegParent"/>+			</context>+			<context name="Raw Triple A-B-Regex ParentCond" attribute="Raw B-String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop#pop!Raw Triple A-B-Regex Parenthesis">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw Triple A-B-Regex Parenthesis" endRegion="RegParent"/>+				<RegExpr String="\b[_a-zA-Z][_a-zA-Z0-9]+|\b[0-9]{1,2}" attribute="Regex Backreference"/>+			  <!-- regex package support: -->+				<RegExpr String="\?&lt;?[=!]" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw Triple A-B-Regex LookaroundInCond"/>+			</context>++			<context name="Raw Triple A-B-Regex ParentError" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String="?" attribute="Error" context="#pop#pop!Raw Triple A-B-Regex Parenthesis"/>+			</context>++			<context name="Raw Triple A-B-Regex NamedCapture" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String="(" attribute="Regex Capturing" beginRegion="RegParent"/>+				<!-- regex package support: P is optional -->+				<RegExpr String="\?P?&lt;(([__a-zA-Z][_a-zA-Z0-9]*)?>)?" attribute="Regex Parenthesis Options" context="#pop#pop!Raw Triple A-B-Regex Capture"/>+			</context>++			<context name="Raw Triple A-B-Regex LookaroundInCond" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop!Raw Triple A-B-Regex Parenthesis" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple A-B-Regex ParentInside"/>+			</context>++			<context name="Raw Triple A-B-Regex Parenthesis" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Parenthesis" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple A-B-Regex ParentInside"/>+			</context>++			<context name="Raw Triple A-B-Regex Capture" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Capturing" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple A-B-Regex ParentInside"/>+			</context>++			<context name="Raw Triple A-B-Regex NonCapture" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Non-Capturing" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple A-B-Regex ParentInside"/>+			</context>++			<context name="Raw Triple A-B-Regex ParentInside" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String="'''" lookAhead="1" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple A-B-Regex"/>+			</context>++			<context name="Raw Triple A-B-Regex Set" attribute="Regex Set" lineEndContext="#stay" noIndentationBasedFolding="true">+				<RegExpr attribute="Regex Set" String="([ -&amp;(-Z^-~]++|'(?!''))++"/>+				<IncludeRules context="RegexBStringSetCommon"/>+				<StringDetect String="'''" lookAhead="1" context="#pop"/>+				<RegExpr attribute="Error" String="."/>+			</context>+++			<!-- Regex rb"""...""" -->++			<context name="Raw Triple Q-B-Regex" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<RegExpr attribute="Raw B-String" String="([ !%-',\-/->@-Z\]_-z~]++|&quot;(?!&quot;&quot;))++"/>+				<StringDetect String="[^]" attribute="Regex Set" context="Raw Triple Q-B-Regex Set"/>+				<StringDetect String="[]" attribute="Regex Set" context="Raw Triple Q-B-Regex Set"/>+				<StringDetect String="[" attribute="Regex Set" context="Raw Triple Q-B-Regex Set"/>+				<StringDetect String="(?" lookAhead="1" context="Raw Triple Q-B-Regex Parent"/>+				<StringDetect String="(" attribute="Regex Capturing" context="Raw Triple Q-B-Regex Capture" beginRegion="RegParent"/>+				<StringDetect String="#" attribute="Comment" context="Raw Triple Q-B-Regex Comment"/>+				<StringDetect String="&quot;&quot;&quot;" attribute="Raw B-String" context="#pop" endRegion="Triple Q-region"/>+				<IncludeRules context="RegexBStringCommon"/>+			</context>++			<context name="Raw Triple Q-B-Regex Comment" attribute="Comment" lineEndContext="#pop">+				<StringDetect String="&quot;&quot;&quot;" lookAhead="1" context="#pop"/>+				<LineContinue attribute="Operator"/>+				<RegExpr String="([ !#-\[\]-~]++|\\.|&quot;(?!&quot;&quot;))++" attribute="Comment"/>+			</context>++			<context name="Raw Triple Q-B-Regex Parent" attribute="Regex Set" lineEndContext="#pop">+				<StringDetect String="(?:" attribute="Regex Non-Capturing" context="#pop!Raw Triple Q-B-Regex NonCapture" beginRegion="RegParent"/>+				<StringDetect String="(?P&lt;" lookAhead="1" context="Raw Triple Q-B-Regex NamedCapture"/>+				<StringDetect String="(?#" attribute="Comment" context="Raw Triple Q-Regex ParentComment" beginRegion="RegParent"/>+				<!-- regex package support: (?<...>) for (?P<...>) -->+				<StringDetect String="(?&lt;" lookAhead="1" context="Raw Triple Q-B-Regex NamedCapture"/>+				<!-- regex package support:+					(?b), (?e), (?p), (?r), (?V0), (?V1), (?f), (?w) (?-a), (?-f), (?-L), (?-u), (?-w)+					(?|...) -->+				<RegExpr String="\((?=\?(([aiLmsuxfwbepr]+|V[01])*(-[imsxafLuw]+)?:|[=>!|]|&lt;[=!]|\())" attribute="Regex Parenthesis" context="Raw Triple Q-B-Regex ParentOptions" beginRegion="RegParent"/>+				<IncludeRules context="RegexParentCommon"/>+				<StringDetect String="(" attribute="Regex Parenthesis" context="Raw Triple Q-B-Regex ParentError" beginRegion="RegParent"/>+			</context>++			<context name="Raw Triple Q-B-Regex ParentOptions" attribute="Regex Parenthesis Options" lineEndContext="#pop">+			  <!-- regex package support: | -->+				<AnyChar String=":=>!|" attribute="Regex Parenthesis Options" context="#pop#pop!Raw Triple Q-B-Regex Parenthesis"/>+				<StringDetect String="(" attribute="Regex Parenthesis Options" context="Raw Triple Q-B-Regex ParentCond" beginRegion="RegParent"/>+			</context>+			<context name="Raw Triple Q-B-Regex ParentCond" attribute="Raw B-String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop#pop!Raw Triple Q-B-Regex Parenthesis">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw Triple Q-B-Regex Parenthesis" endRegion="RegParent"/>+				<RegExpr String="\b[_a-zA-Z][_a-zA-Z0-9]+|\b[0-9]{1,2}" attribute="Regex Backreference"/>+			  <!-- regex package support: -->+				<RegExpr String="\?&lt;?[=!]" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw Triple Q-B-Regex LookaroundInCond"/>+			</context>++			<context name="Raw Triple Q-B-Regex ParentError" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String="?" attribute="Error" context="#pop#pop!Raw Triple Q-B-Regex Parenthesis"/>+			</context>++			<context name="Raw Triple Q-B-Regex NamedCapture" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String="(" attribute="Regex Capturing" beginRegion="RegParent"/>+				<!-- regex package support: P is optional -->+				<RegExpr String="\?P?&lt;(([__a-zA-Z][_a-zA-Z0-9]*)?>)?" attribute="Regex Parenthesis Options" context="#pop#pop!Raw Triple Q-B-Regex Capture"/>+			</context>++			<context name="Raw Triple Q-B-Regex LookaroundInCond" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop!Raw Triple Q-B-Regex Parenthesis" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple Q-B-Regex ParentInside"/>+			</context>++			<context name="Raw Triple Q-B-Regex Parenthesis" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Parenthesis" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple Q-B-Regex ParentInside"/>+			</context>++			<context name="Raw Triple Q-B-Regex Capture" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Capturing" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple Q-B-Regex ParentInside"/>+			</context>++			<context name="Raw Triple Q-B-Regex NonCapture" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Non-Capturing" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple Q-B-Regex ParentInside"/>+			</context>++			<context name="Raw Triple Q-B-Regex ParentInside" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String="&quot;&quot;&quot;" lookAhead="1" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple Q-B-Regex"/>+			</context>++			<context name="Raw Triple Q-B-Regex Set" attribute="Regex Set" lineEndContext="#stay" noIndentationBasedFolding="true">+				<RegExpr attribute="Regex Set" String="([ !#-Z^-~]++|&quot;(?!&quot;&quot;))++"/>+				<IncludeRules context="RegexBStringSetCommon"/>+				<StringDetect String="&quot;&quot;&quot;" lookAhead="1" context="#pop"/>+				<RegExpr attribute="Error" String="."/>+			</context>+++			<!-- Regex rf'...' -->++			<context name="Raw A-F-Regex" attribute="Raw F-String" lineEndContext="#pop!UnfinishedStringError">+				<DetectSpaces attribute="Raw F-String"/>+				<DetectIdentifier attribute="Raw F-String"/>+				<StringDetect String="[^]" attribute="Regex Set" context="Raw A-F-Regex Set"/>+				<StringDetect String="[]" attribute="Regex Set" context="Raw A-F-Regex Set"/>+				<StringDetect String="[" attribute="Regex Set" context="Raw A-F-Regex Set"/>+				<StringDetect String="(?" lookAhead="1" context="Raw A-F-Regex Parent"/>+				<StringDetect String="(" attribute="Regex Capturing" context="Raw A-F-Regex Capture"/>+				<StringDetect String="'" attribute="Raw F-String" context="#pop"/>+				<IncludeRules context="RegexFStringCommon"/>+			</context>++			<context name="Raw A-F-Regex Parent" attribute="Regex Set" lineEndContext="#pop">+				<StringDetect String="(?:" attribute="Regex Non-Capturing" context="#pop!Raw A-F-Regex NonCapture"/>+				<StringDetect String="(?P&lt;" lookAhead="1" context="Raw A-F-Regex NamedCapture"/>+				<StringDetect String="(?#" attribute="Comment" context="Raw A-F-Regex ParentComment"/>+				<!-- regex package support: (?<...>) for (?P<...>) -->+				<StringDetect String="(?&lt;" lookAhead="1" context="Raw A-F-Regex NamedCapture"/>+				<!-- regex package support:+					(?b), (?e), (?p), (?r), (?V0), (?V1), (?f), (?w) (?-a), (?-f), (?-L), (?-u), (?-w)+					(?|...) -->+				<RegExpr String="\((?=\?(([aiLmsuxfwbepr]+|V[01]|&fStringSimple;)*(-([imsxafLuw]|&fStringSimple;)+)?:|[=>!|]|&lt;[=!]|\())" attribute="Regex Parenthesis" context="Raw A-F-Regex ParentOptions"/>+				<IncludeRules context="RegexFStringParentCommon"/>+				<StringDetect String="(" attribute="Regex Parenthesis" context="Raw A-F-Regex ParentError"/>+			</context>++			<context name="Raw A-F-Regex ParentOptions" attribute="Regex Parenthesis Options" lineEndContext="#pop">+			  <!-- regex package support: | -->+				<AnyChar String=":=>!|" attribute="Regex Parenthesis Options" context="#pop#pop!Raw A-F-Regex Parenthesis"/>+				<StringDetect String="(" attribute="Regex Parenthesis Options" context="Raw A-F-Regex ParentCond"/>+				<StringDetect String="{" attribute="String Substitution" context="String Interpolation"/>+			</context>+			<context name="Raw A-F-Regex ParentCond" attribute="Raw F-String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop#pop!Raw A-F-Regex Parenthesis">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw A-F-Regex Parenthesis"/>+				<StringDetect String="{" attribute="String Substitution" context="String Interpolation"/>+				<RegExpr String="\b[_[:alpha:]]\w+|\b[0-9]{1,2}" attribute="Regex Backreference"/>+			  <!-- regex package support: -->+				<RegExpr String="\?&lt;?[=!]" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw A-F-Regex LookaroundInCond"/>+			</context>++			<context name="Raw A-F-Regex ParentError" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String="?" attribute="Error" context="#pop#pop!Raw A-F-Regex Parenthesis"/>+			</context>++			<context name="Raw A-F-Regex NamedCapture" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String="(" attribute="Regex Capturing"/>+				<!-- regex package support: P is optional -->+				<RegExpr String="\?P?&lt;(([_[:alpha:]]\w*)?>)?" attribute="Regex Parenthesis Options" context="#pop#pop!Raw A-F-Regex Capture"/>+			</context>++			<context name="Raw A-F-Regex LookaroundInCond" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop!Raw A-F-Regex Parenthesis"/>+				<IncludeRules context="Raw A-F-Regex ParentInside"/>+			</context>++			<context name="Raw A-F-Regex Parenthesis" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Parenthesis" context="#pop"/>+				<IncludeRules context="Raw A-F-Regex ParentInside"/>+			</context>++			<context name="Raw A-F-Regex Capture" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Capturing" context="#pop"/>+				<IncludeRules context="Raw A-F-Regex ParentInside"/>+			</context>++			<context name="Raw A-F-Regex NonCapture" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Non-Capturing" context="#pop"/>+				<IncludeRules context="Raw A-F-Regex ParentInside"/>+			</context>++			<context name="Raw A-F-Regex ParentInside" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String="'" lookAhead="1" context="#pop"/>+				<IncludeRules context="Raw A-F-Regex"/>+			</context>++			<context name="Raw A-F-Regex ParentComment" attribute="Comment" lineEndContext="#pop">+				<IncludeRules context="RegexCommentCommon"/>+				<IncludeRules context="RegexFString"/>+				<StringDetect String="'" lookAhead="1" context="#pop#pop"/>+			</context>++			<context name="Raw A-F-Regex Set" attribute="Regex Set" lineEndContext="#pop">+				<IncludeRules context="RegexFStringSetCommon"/>+				<IncludeRules context="RegexFString"/>+				<StringDetect String="'" lookAhead="1" context="#pop"/>+			</context>+++			<!-- Regex rf"..." -->++			<context name="Raw Q-F-Regex" attribute="Raw F-String" lineEndContext="#pop!UnfinishedStringError">+				<DetectSpaces attribute="Raw F-String"/>+				<DetectIdentifier attribute="Raw F-String"/>+				<StringDetect String="[^]" attribute="Regex Set" context="Raw Q-F-Regex Set"/>+				<StringDetect String="[]" attribute="Regex Set" context="Raw Q-F-Regex Set"/>+				<StringDetect String="[" attribute="Regex Set" context="Raw Q-F-Regex Set"/>+				<StringDetect String="(?" lookAhead="1" context="Raw Q-F-Regex Parent"/>+				<StringDetect String="(" attribute="Regex Capturing" context="Raw Q-F-Regex Capture"/>+				<StringDetect String="&quot;" attribute="Raw F-String" context="#pop"/>+				<IncludeRules context="RegexFStringCommon"/>+			</context>++			<context name="Raw Q-F-Regex Parent" attribute="Regex Set" lineEndContext="#pop">+				<StringDetect String="(?:" attribute="Regex Non-Capturing" context="#pop!Raw Q-F-Regex NonCapture"/>+				<StringDetect String="(?P&lt;" lookAhead="1" context="Raw Q-F-Regex NamedCapture"/>+				<StringDetect String="(?#" attribute="Comment" context="Raw Q-F-Regex ParentComment"/>+				<!-- regex package support: (?<...>) for (?P<...>) -->+				<StringDetect String="(?&lt;" lookAhead="1" context="Raw Q-F-Regex NamedCapture"/>+				<!-- regex package support:+					(?b), (?e), (?p), (?r), (?V0), (?V1), (?f), (?w) (?-a), (?-f), (?-L), (?-u), (?-w)+					(?|...) -->+				<RegExpr String="\((?=\?(([aiLmsuxfwbepr]+|V[01]|&fStringSimple;)*(-([imsxafLuw]|&fStringSimple;)+)?:|[=>!|]|&lt;[=!]|\())" attribute="Regex Parenthesis" context="Raw Q-F-Regex ParentOptions"/>+				<IncludeRules context="RegexFStringParentCommon"/>+				<StringDetect String="(" attribute="Regex Parenthesis" context="Raw Q-F-Regex ParentError"/>+			</context>++			<context name="Raw Q-F-Regex ParentOptions" attribute="Regex Parenthesis Options" lineEndContext="#pop">+			  <!-- regex package support: | -->+				<AnyChar String=":=>!|" attribute="Regex Parenthesis Options" context="#pop#pop!Raw Q-F-Regex Parenthesis"/>+				<StringDetect String="(" attribute="Regex Parenthesis Options" context="Raw Q-F-Regex ParentCond"/>+				<StringDetect String="{" attribute="String Substitution" context="String Interpolation"/>+			</context>+			<context name="Raw Q-F-Regex ParentCond" attribute="Raw F-String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop#pop!Raw Q-F-Regex Parenthesis">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw Q-F-Regex Parenthesis"/>+				<StringDetect String="{" attribute="String Substitution" context="String Interpolation"/>+				<RegExpr String="\b[_[:alpha:]]\w+|\b[0-9]{1,2}" attribute="Regex Backreference"/>+			  <!-- regex package support: lookaround in conditional pattern: (?(?!...)a|b) etc -->+				<RegExpr String="\?&lt;?[=!]" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw Q-F-Regex LookaroundInCond"/>+			</context>++			<context name="Raw Q-F-Regex ParentError" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String="?" attribute="Error" context="#pop#pop!Raw Q-F-Regex Parenthesis"/>+			</context>++			<context name="Raw Q-F-Regex NamedCapture" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String="(" attribute="Regex Capturing"/>+				<!-- regex package support: P is optional -->+				<RegExpr String="\?P?&lt;(([_[:alpha:]]\w*)?>)?" attribute="Regex Parenthesis Options" context="#pop#pop!Raw Q-F-Regex Capture"/>+			</context>++			<context name="Raw Q-F-Regex LookaroundInCond" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop!Raw Q-F-Regex Parenthesis"/>+				<IncludeRules context="Raw Q-F-Regex ParentInside"/>+			</context>++			<context name="Raw Q-F-Regex Parenthesis" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Parenthesis" context="#pop"/>+				<IncludeRules context="Raw Q-F-Regex ParentInside"/>+			</context>++			<context name="Raw Q-F-Regex Capture" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Capturing" context="#pop"/>+				<IncludeRules context="Raw Q-F-Regex ParentInside"/>+			</context>++			<context name="Raw Q-F-Regex NonCapture" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String=")" attribute="Regex Non-Capturing" context="#pop"/>+				<IncludeRules context="Raw Q-F-Regex ParentInside"/>+			</context>++			<context name="Raw Q-F-Regex ParentInside" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String="&quot;" lookAhead="1" context="#pop"/>+				<IncludeRules context="Raw Q-F-Regex"/>+			</context>++			<context name="Raw Q-F-Regex ParentComment" attribute="Comment" lineEndContext="#pop">+				<IncludeRules context="RegexCommentCommon"/>+				<IncludeRules context="RegexFString"/>+				<StringDetect String="&quot;" lookAhead="1" context="#pop#pop"/>+			</context>++			<context name="Raw Q-F-Regex Set" attribute="Regex Set" lineEndContext="#pop">+				<IncludeRules context="RegexFStringSetCommon"/>+				<IncludeRules context="RegexFString"/>+				<StringDetect String="&quot;" lookAhead="1" context="#pop"/>+			</context>+++			<!-- Regex rf'''...''' -->++			<context name="Raw Triple A-F-Regex" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces attribute="Raw F-String"/>+				<DetectIdentifier attribute="Raw F-String"/>+				<StringDetect String="[^]" attribute="Regex Set" context="Raw Triple A-F-Regex Set"/>+				<StringDetect String="[]" attribute="Regex Set" context="Raw Triple A-F-Regex Set"/>+				<StringDetect String="[" attribute="Regex Set" context="Raw Triple A-F-Regex Set"/>+				<StringDetect String="(?" lookAhead="1" context="Raw Triple A-F-Regex Parent"/>+				<StringDetect String="(" attribute="Regex Capturing" context="Raw Triple A-F-Regex Capture" beginRegion="RegParent"/>+				<StringDetect String="#" attribute="Comment" context="Raw Triple A-F-Regex Comment"/>+				<StringDetect String="'''" attribute="Raw F-String" context="#pop" endRegion="Triple A-region"/>+				<IncludeRules context="RegexFStringCommon"/>+			</context>++			<context name="Raw Triple A-F-Regex Comment" attribute="Comment" lineEndContext="#pop">+				<StringDetect String="'''" lookAhead="1" context="#pop"/>+				<LineContinue attribute="Operator"/>+				<IncludeRules context="RegexFString"/>+				<RegExpr String="([^'\\{}]++|\\.|'(?!''))++" attribute="Comment"/>+			</context>++			<context name="Raw Triple A-F-Regex Parent" attribute="Regex Set" lineEndContext="#pop">+				<StringDetect String="(?:" attribute="Regex Non-Capturing" context="#pop!Raw Triple A-F-Regex NonCapture" beginRegion="RegParent"/>+				<StringDetect String="(?P&lt;" lookAhead="1" context="Raw Triple A-F-Regex NamedCapture"/>+				<StringDetect String="(?#" attribute="Comment" context="Raw Triple A-F-Regex ParentComment" beginRegion="RegParent"/>+				<!-- regex package support: (?<...>) for (?P<...>) -->+				<StringDetect String="(?&lt;" lookAhead="1" context="Raw Triple A-F-Regex NamedCapture"/>+				<!-- regex package support:+					(?b), (?e), (?p), (?r), (?V0), (?V1), (?f), (?w) (?-a), (?-f), (?-L), (?-u), (?-w)+					(?|...) -->+				<RegExpr String="\((?=\?(([aiLmsuxfwbepr]+|V[01]|&fStringSimple;)*(-([imsxafLuw]|&fStringSimple;)+)?:|[=>!|]|&lt;[=!]|\())" attribute="Regex Parenthesis" context="Raw Triple A-F-Regex ParentOptions" beginRegion="RegParent"/>+				<IncludeRules context="RegexFStringParentCommon"/>+				<StringDetect String="(" attribute="Regex Parenthesis" context="Raw Triple A-F-Regex ParentError" beginRegion="RegParent"/>+			</context>++			<context name="Raw Triple A-F-Regex ParentOptions" attribute="Regex Parenthesis Options" lineEndContext="#pop">+			  <!-- regex package support: | -->+				<AnyChar String=":=>!|" attribute="Regex Parenthesis Options" context="#pop#pop!Raw Triple A-F-Regex Parenthesis"/>+				<StringDetect String="(" attribute="Regex Parenthesis Options" context="Raw Triple A-F-Regex ParentCond" beginRegion="RegParent"/>+				<StringDetect String="{" attribute="String Substitution" context="String Interpolation"/>+			</context>+			<context name="Raw Triple A-F-Regex ParentCond" attribute="Raw F-String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop#pop!Raw Triple A-F-Regex Parenthesis">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw Triple A-F-Regex Parenthesis" endRegion="RegParent"/>+				<StringDetect String="{" attribute="String Substitution" context="String Interpolation"/>+				<RegExpr String="\b[_[:alpha:]]\w+|\b[0-9]{1,2}" attribute="Regex Backreference"/>+			  <!-- regex package support: -->+				<RegExpr String="\?&lt;?[=!]" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw Triple A-F-Regex LookaroundInCond"/>+			</context>++			<context name="Raw Triple A-F-Regex ParentError" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String="?" attribute="Error" context="#pop#pop!Raw Triple A-F-Regex Parenthesis"/>+			</context>++			<context name="Raw Triple A-F-Regex NamedCapture" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String="(" attribute="Regex Capturing" beginRegion="RegParent"/>+				<!-- regex package support: P is optional -->+				<RegExpr String="\?P?&lt;(([_[:alpha:]]\w*)?>)?" attribute="Regex Parenthesis Options" context="#pop#pop!Raw Triple A-F-Regex Capture"/>+			</context>++			<context name="Raw Triple A-F-Regex LookaroundInCond" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop!Raw Triple A-F-Regex Parenthesis" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple A-F-Regex ParentInside"/>+			</context>++			<context name="Raw Triple A-F-Regex Parenthesis" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Parenthesis" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple A-F-Regex ParentInside"/>+			</context>++			<context name="Raw Triple A-F-Regex Capture" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Capturing" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple A-F-Regex ParentInside"/>+			</context>++			<context name="Raw Triple A-F-Regex NonCapture" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Non-Capturing" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple A-F-Regex ParentInside"/>+			</context>++			<context name="Raw Triple A-F-Regex ParentInside" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String="'''" lookAhead="1" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple A-F-Regex"/>+			</context>++			<context name="Raw Triple A-F-Regex ParentComment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">+				<IncludeRules context="RegexTripleCommentCommon"/>+				<IncludeRules context="RegexFString"/>+				<StringDetect String="'''" lookAhead="1" context="#pop#pop" endRegion="RegParent"/>+			</context>++			<context name="Raw Triple A-F-Regex Set" attribute="Regex Set" lineEndContext="#stay" noIndentationBasedFolding="true">+				<IncludeRules context="RegexFStringSetCommon"/>+				<IncludeRules context="RegexFString"/>+				<StringDetect String="'''" lookAhead="1" context="#pop"/>+			</context>+++			<!-- Regex rf"""...""" -->++			<context name="Raw Triple Q-F-Regex" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces attribute="Raw F-String"/>+				<DetectIdentifier attribute="Raw F-String"/>+				<StringDetect String="[^]" attribute="Regex Set" context="Raw Triple Q-F-Regex Set"/>+				<StringDetect String="[]" attribute="Regex Set" context="Raw Triple Q-F-Regex Set"/>+				<StringDetect String="[" attribute="Regex Set" context="Raw Triple Q-F-Regex Set"/>+				<StringDetect String="(?" lookAhead="1" context="Raw Triple Q-F-Regex Parent"/>+				<StringDetect String="(" attribute="Regex Capturing" context="Raw Triple Q-F-Regex Capture" beginRegion="RegParent"/>+				<StringDetect String="#" attribute="Comment" context="Raw Triple Q-F-Regex Comment"/>+				<StringDetect String="&quot;&quot;&quot;" attribute="Raw F-String" context="#pop" endRegion="Triple Q-region"/>+				<IncludeRules context="RegexFStringCommon"/>+			</context>++			<context name="Raw Triple Q-F-Regex Comment" attribute="Comment" lineEndContext="#pop">+				<StringDetect String="&quot;&quot;&quot;" lookAhead="1" context="#pop"/>+				<LineContinue attribute="Operator"/>+				<IncludeRules context="RegexFString"/>+				<RegExpr String="([^&quot;\\{}]++|\\.|&quot;(?!&quot;&quot;))++" attribute="Comment"/>+			</context>++			<context name="Raw Triple Q-F-Regex Parent" attribute="Regex Set" lineEndContext="#pop">+				<StringDetect String="(?:" attribute="Regex Non-Capturing" context="#pop!Raw Triple Q-F-Regex NonCapture" beginRegion="RegParent"/>+				<StringDetect String="(?P&lt;" lookAhead="1" context="Raw Triple Q-F-Regex NamedCapture"/>+				<StringDetect String="(?#" attribute="Comment" context="Raw Triple Q-F-Regex ParentComment" beginRegion="RegParent"/>+				<!-- regex package support: (?<...>) for (?P<...>) -->+				<StringDetect String="(?&lt;" lookAhead="1" context="Raw Triple Q-F-Regex NamedCapture"/>+				<!-- regex package support:+					(?b), (?e), (?p), (?r), (?V0), (?V1), (?f), (?w) (?-a), (?-f), (?-L), (?-u), (?-w)+					(?|...) -->+				<RegExpr String="\((?=\?(([aiLmsuxfwbepr]+|V[01]|&fStringSimple;)*(-([imsxafLuw]|&fStringSimple;)+)?:|[=>!|]|&lt;[=!]|\())" attribute="Regex Parenthesis" context="Raw Triple Q-F-Regex ParentOptions" beginRegion="RegParent"/>+				<IncludeRules context="RegexFStringParentCommon"/>+				<StringDetect String="(" attribute="Regex Parenthesis" context="Raw Triple Q-F-Regex ParentError" beginRegion="RegParent"/>+			</context>++			<context name="Raw Triple Q-F-Regex ParentOptions" attribute="Regex Parenthesis Options" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop#pop!Raw Triple Q-F-Regex Parenthesis">+			  <!-- regex package support: | -->+				<AnyChar String=":=>!|" attribute="Regex Parenthesis Options" context="#pop#pop!Raw Triple Q-F-Regex Parenthesis"/>+				<AnyChar String="&lt;?" attribute="Regex Parenthesis Options"/>+				<StringDetect String="(" attribute="Regex Parenthesis Options" context="Raw Triple Q-F-Regex ParentCond" beginRegion="RegParent"/>+				<StringDetect String="{" attribute="String Substitution" context="String Interpolation"/>+			</context>+			<context name="Raw Triple Q-F-Regex ParentCond" attribute="Raw F-String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop#pop!Raw Triple Q-F-Regex Parenthesis">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw Triple Q-F-Regex Parenthesis" endRegion="RegParent"/>+				<StringDetect String="{" attribute="String Substitution" context="String Interpolation"/>+				<RegExpr String="\b[_[:alpha:]]\w+|\b[0-9]{1,2}" attribute="Regex Backreference"/>+			  <!-- regex package support: -->+				<RegExpr String="\?&lt;?[=!]" attribute="Regex Parenthesis Options" context="#pop#pop#pop!Raw Triple Q-F-Regex LookaroundInCond"/>+			</context>++			<context name="Raw Triple Q-F-Regex ParentError" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String="?" attribute="Error" context="#pop#pop!Raw Triple Q-F-Regex Parenthesis"/>+			</context>++			<context name="Raw Triple Q-F-Regex NamedCapture" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String="(" attribute="Regex Capturing" beginRegion="RegParent"/>+				<!-- regex package support: P is optional -->+				<RegExpr String="\?P?&lt;(([_[:alpha:]]\w*)?>)?" attribute="Regex Parenthesis Options" context="#pop#pop!Raw Triple Q-F-Regex Capture"/>+			</context>++			<context name="Raw Triple Q-F-Regex LookaroundInCond" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop!Raw Triple Q-F-Regex Parenthesis" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple Q-F-Regex ParentInside"/>+			</context>++			<context name="Raw Triple Q-F-Regex Parenthesis" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Parenthesis" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple Q-F-Regex ParentInside"/>+			</context>++			<context name="Raw Triple Q-F-Regex Capture" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Capturing" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple Q-F-Regex ParentInside"/>+			</context>++			<context name="Raw Triple Q-F-Regex NonCapture" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String=")" attribute="Regex Non-Capturing" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple Q-F-Regex ParentInside"/>+			</context>++			<context name="Raw Triple Q-F-Regex ParentInside" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<StringDetect String="&quot;&quot;&quot;" lookAhead="1" context="#pop" endRegion="RegParent"/>+				<IncludeRules context="Raw Triple Q-F-Regex"/>+			</context>++			<context name="Raw Triple Q-F-Regex ParentComment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">+				<IncludeRules context="RegexTripleCommentCommon"/>+				<IncludeRules context="RegexFString"/>+				<StringDetect String="&quot;&quot;&quot;" lookAhead="1" context="#pop#pop" endRegion="RegParent"/>+			</context>++			<context name="Raw Triple Q-F-Regex Set" attribute="Regex Set" lineEndContext="#stay" noIndentationBasedFolding="true">+				<IncludeRules context="RegexFStringSetCommon"/>+				<IncludeRules context="RegexFString"/>+				<StringDetect String="&quot;&quot;&quot;" lookAhead="1" context="#pop"/>+			</context>+++			<!-- Regex common context -->++			<context name="RegexFString" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String="{{" attribute="String Char"/>+				<StringDetect String="}}" attribute="String Char"/>+				<StringDetect String="{"  attribute="String Substitution" context="String Interpolation"/>+				<StringDetect String="}"  attribute="Error"/>+			</context>++			<context name="RegexFStringParentCommon" attribute="Raw F-String" lineEndContext="#pop">+				<!-- regex package support: (?R) (?0) -->+				<RegExpr String="\(\?([R0](?=\))|(?=([aiLmsuxfwbepr]+|V[01]|&fStringSimple;)*\)))" attribute="Regex Parenthesis Options" context="RegexFStringParentOptions"/>+				<!-- regex package support: (?P=1), (?1), (?P>name), (?P&name) -->+				<RegExpr String="\(\?P[=>&amp;]" attribute="Regex Backreference" context="RegexFStringParentBackRef"/>+			</context>+			<context name="RegexFStringParentOptions" attribute="Regex Parenthesis Options" lineEndContext="#pop#pop">+				<StringDetect String="{" attribute="String Substitution" context="String Interpolation"/>+				<StringDetect String=")" attribute="Regex Parenthesis Options" context="#pop#pop"/>+			</context>+			<context name="RegexFStringParentBackRef" attribute="Regex Backreference" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop">+				<StringDetect String="{" attribute="String Substitution" context="String Interpolation"/>+				<StringDetect String=")" attribute="Regex Backreference" context="#pop#pop"/>+				<DetectIdentifier attribute="Regex Backreference"/>+				<Int attribute="Regex Backreference"/>+			</context>++			<context name="RegexFStringCommon" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String="\" lookAhead="1" context="RegexFStringEscape"/>+				<IncludeRules context="RegexCommonSymbol"/>+				<RegExpr String="\{\{(,&regFStringRangeN;?|&regFStringRangeN;(,&regFStringRangeN;?)?)\}\}" lookAhead="1" context="RegexFStringCommonRange"/>+				<IncludeRules context="RegexFString"/>+			</context>+			<context name="RegexFStringCommonRange" attribute="Regex Quantifier" lineEndContext="#pop">+				<StringDetect String="{{" attribute="String Char"/>+				<StringDetect String="}}" attribute="String Char" context="#pop"/>+				<StringDetect String="{"  attribute="String Substitution" context="String Interpolation"/>+			</context>++			<context name="RegexFStringSetCommon" attribute="Raw F-String" lineEndContext="#pop">+				<StringDetect String="]" attribute="Regex Set" context="#pop"/>+				<StringDetect String="\" lookAhead="1" context="RegexFStringSetEscape"/>+				<!-- regex package support: character classes [:...:] -->+				<StringDetect String="[" lookAhead="1" context="RegexSetCharClass"/>+			</context>++			<context name="RegexFStringSetEscape" attribute="Raw F-String" lineEndContext="#pop">+				<IncludeRules context="RegexFStringEscapeCommon"/>+				<StringDetect String="\b" attribute="String Char" context="#pop"/>+				<LineContinue attribute="String Char" context="#pop"/>+				<RegExpr String="." attribute="Error" context="#pop"/>+			</context>++			<context name="RegexFStringEscape" attribute="Raw F-String" lineEndContext="#pop">+				<IncludeRules context="RegexFStringEscapeCommon"/>+				<IncludeRules context="RegexEscapeCommonBegin"/>+				<RegExpr String="\\g&lt;(?=&fStringSimple;>)" attribute="Regex Backreference" context="RegexFStringEscapeG"/>+				<IncludeRules context="RegexEscapeCommonEnd"/>+			</context>+			<context name="RegexFStringEscapeG" attribute="Regex Backreference" lineEndContext="#pop#pop">+				<StringDetect String="{" attribute="String Substitution" context="String Interpolation"/>+				<StringDetect String=">" attribute="Regex Backreference" context="#pop#pop"/>+			</context>++			<!-- contains no \b -->+			<context name="RegexFStringEscapeCommon" attribute="Raw F-String" lineEndContext="#pop">+				<IncludeRules context="RegexEscapeSpecialCommon"/>+				<!-- regex package support: \p{value} \P{value} \p{property=value} \P{property=value} -->+				<RegExpr String="\\[[:^alnum:]afnrtv]|\\[0-7]{1,3}|&escapedHexUni;|\\[pP]{{\^?[a-zA-Z0-9_]+([:=][a-zA-Z0-9_]*)?}}|\\({{|}})|\\[xuUpPN]?(?={([^{]|$))" attribute="String Char" context="#pop"/>+				<RegExpr String="\\[pP]{{\^?(?=(&fStringSimple;|[a-zA-Z0-9_]++)[:=]?(([a-zA-Z0-9_]*|&fStringSimple;)?)}})|\\N{{(?=&fStringSimple;}})" attribute="String Char" context="RegexFStringEscapeP"/>+				<RegExpr String="\\L&lt;(?=&fStringSimple;>)" attribute="Regex Special" context="RegexFStringEscapeL"/>+			</context>+			<context name="RegexFStringEscapeP" attribute="String Char" lineEndContext="#pop#pop">+				<StringDetect String="}}" attribute="String Char" context="#pop#pop"/>+				<StringDetect String="{"  attribute="String Substitution" context="String Interpolation"/>+			</context>+			<context name="RegexFStringEscapeL" attribute="Regex Special" lineEndContext="#pop#pop">+				<StringDetect String="{" attribute="String Substitution" context="String Interpolation"/>+				<StringDetect String=">" attribute="Regex Special" context="#pop#pop"/>+			</context>+++			<context name="RegexBStringCommon" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String="\" lookAhead="1" context="RegexBStringEscape"/>+				<IncludeRules context="RegexCommonSymbol"/>+				<IncludeRules context="RegexCommonRangeQuantifier"/>+				<AnyChar String="{}" attribute="Raw B-String"/>+				<RegExpr attribute="Error" String="."/>+			</context>++			<context name="RegexBStringSetCommon" attribute="Raw B-String" lineEndContext="#pop">+				<StringDetect String="]" attribute="Regex Set" context="#pop"/>+				<StringDetect String="\" lookAhead="1" context="RegexBStringSetEscape"/>+				<!-- regex package support: character classes [:...:] -->+				<StringDetect String="[" lookAhead="1" context="RegexSetCharClass"/>+			</context>++			<context name="RegexBStringSetEscape" attribute="Raw B-String" lineEndContext="#pop">+				<IncludeRules context="RegexBStringEscapeCommon"/>+				<StringDetect String="\b" attribute="String Char" context="#pop"/>+				<LineContinue attribute="String Char" context="#pop"/>+				<RegExpr String="." attribute="Error" context="#pop"/>+			</context>++			<context name="RegexBStringEscape" attribute="Raw B-String" lineEndContext="#pop">+				<IncludeRules context="RegexBStringEscapeCommon"/>+				<IncludeRules context="RegexEscapeCommonBegin"/>+				<IncludeRules context="RegexEscapeCommonEnd"/>+			</context>++			<!-- contains no \b -->+			<context name="RegexBStringEscapeCommon" attribute="Raw B-String" lineEndContext="#pop">+				<IncludeRules context="RegexEscapeSpecialCommon"/>+				<RegExpr String="\\[[:^alnum:]afnrtv]|\\[0-7]{1,3}|&escapedHex;" attribute="String Char" context="#pop"/>+			</context>+++			<context name="RegexStringCommon" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String="\" lookAhead="1" context="RegexEscape"/>+				<IncludeRules context="RegexCommonSymbol"/>+				<IncludeRules context="RegexCommonRangeQuantifier"/>+			</context>++			<context name="RegexCommonSymbol" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String="|" attribute="Regex Alternation"/>+				<StringDetect String=")" attribute="Error"/>+				<AnyChar String="*+?" attribute="Regex Quantifier"/>+				<AnyChar String="^$." attribute="Regex Special"/>+			</context>+			<context name="RegexCommonRangeQuantifier" attribute="Raw String" lineEndContext="#pop">+				<RegExpr String="\{(,[0-9]*|[0-9]+(,[0-9]*)?)\}" attribute="Regex Quantifier"/>+			</context>++			<context name="RegexCommentCommon" attribute="Comment" lineEndContext="#pop">+				<DetectSpaces attribute="Comment"/>+				<DetectIdentifier attribute="Comment"/>+				<StringDetect String=")" attribute="Comment" context="#pop#pop"/>+				<StringDetect String="\)" attribute="Comment"/>+				<StringDetect String="\\" attribute="Comment"/>+				<StringDetect String="\'" attribute="Comment"/>+				<StringDetect String="\&quot;" attribute="Comment"/>+			</context>++			<context name="RegexTripleCommentCommon" attribute="Comment" lineEndContext="#pop">+				<DetectSpaces attribute="Comment"/>+				<DetectIdentifier attribute="Comment"/>+				<StringDetect String=")" attribute="Comment" context="#pop#pop" endRegion="RegParent"/>+				<StringDetect String="\)" attribute="Comment"/>+				<StringDetect String="\\" attribute="Comment"/>+				<StringDetect String="\'" attribute="Comment"/>+				<StringDetect String="\&quot;" attribute="Comment"/>+			</context>++			<context name="RegexParentCommon" attribute="Raw String" lineEndContext="#pop">+				<!-- regex package support: (?R) (?0) -->+				<RegExpr String="\(\?(([aiLmsuxfwbepr]+|V[01])*|[R0])\)" attribute="Regex Parenthesis Options" context="#pop"/>+				<!-- regex package support: (?P=1), (?1), (?P>name), (?P&name) -->+				<RegExpr String="\(\?(P=([_[:alpha:]]\w*|[0-9]{1,2})?|[0-9]{1,2}|P[>&amp;]([_[:alpha:]]\w*)?)\)?" attribute="Regex Backreference" context="#pop"/>+			</context>++			<context name="RegexSetCommon" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String="]" attribute="Regex Set" context="#pop"/>+				<StringDetect String="\" lookAhead="1" context="RegexSetEscape"/>+				<!-- regex package support: character classes [:...:] -->+				<StringDetect String="[" lookAhead="1" context="RegexSetCharClass"/>+			</context>++			<context name="RegexSetCharClass" attribute="Raw String" lineEndContext="#pop">+				<RegExpr String="\[:\^?[a-zA-Z_]*:\]" attribute="Regex Character Class" context="#pop"/>+				<StringDetect String="[" attribute="Regex Set" context="#pop"/>+			</context>++			<context name="RegexSetEscape" attribute="Raw String" lineEndContext="#pop">+				<IncludeRules context="RegexStringEscapeCommon"/>+				<StringDetect String="\b" attribute="String Char" context="#pop"/>+				<LineContinue attribute="String Char" context="#pop"/>+				<RegExpr String="." attribute="Error" context="#pop"/>+			</context>++			<context name="RegexEscape" attribute="Raw String" lineEndContext="#pop">+				<IncludeRules context="RegexStringEscapeCommon"/>+				<IncludeRules context="RegexEscapeCommonBegin"/>+				<IncludeRules context="RegexEscapeCommonEnd"/>+			</context>++			<context name="RegexEscapeCommonBegin" attribute="Raw String" lineEndContext="#pop">+				<RegExpr String="\\[0-9]{1,2}|\\g&lt;([0-9]{1,2}|[_[:alpha:]]\w*)>" attribute="Regex Backreference" context="#pop"/>+			</context>+			<context name="RegexEscapeCommonEnd" attribute="Raw String" lineEndContext="#pop">+				<StringDetect String="\b" attribute="Regex Special" context="#pop"/>+				<LineContinue attribute="String Char" context="#pop"/>+				<RegExpr String="." attribute="Error" context="#pop"/>+			</context>++			<!-- contains no \b -->+			<context name="RegexStringEscapeCommon" attribute="Raw String" lineEndContext="#pop">+				<IncludeRules context="RegexEscapeSpecialCommon"/>+				<!-- regex package support: \p{value} \P{value} \p{property=value} \P{property=value} -->+				<RegExpr String="\\[[:^alnum:]afnrtv]|\\[0-7]{1,3}|&escapedHexUni;|\\[pP]\{\^?[a-zA-Z0-9_]+([:=][a-zA-Z0-9_]*)?\}" attribute="String Char" context="#pop"/>+			</context>+			<context name="RegexEscapeSpecialCommon" attribute="Raw String" lineEndContext="#pop">+				<!-- regex package support: \K \m \M \G \X \L<name> -->+				<RegExpr String="\\[ABdDsSwWZKmMGX]|\\L&lt;([_[:alpha:]]\w*)?>" attribute="Regex Special" context="#pop"/>+			</context>++		</contexts>++		<itemDatas>+			<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>+			<itemData name="Definition Keyword" defStyleNum="dsKeyword" spellChecking="false"/>+			<itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>+			<itemData name="Operator Keyword" defStyleNum="dsKeyword" spellChecking="false"/>+			<itemData name="Flow Control Keyword" defStyleNum="dsControlFlow" spellChecking="false"/>+			<itemData name="Builtin Function" defStyleNum="dsBuiltIn" spellChecking="false"/>+			<itemData name="Special Variable" defStyleNum="dsVariable" spellChecking="false"/>+			<itemData name="Extensions" defStyleNum="dsExtension" spellChecking="false"/>+			<itemData name="Exceptions" defStyleNum="dsPreprocessor" spellChecking="false"/>+			<itemData name="Overloaders" defStyleNum="dsFunction" spellChecking="false"/>+			<itemData name="Import" defStyleNum="dsImport" spellChecking="false"/>+			<itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>+			<itemData name="Int" defStyleNum="dsDecVal" spellChecking="false"/>+			<itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/>+			<itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false"/>+			<itemData name="Binary" defStyleNum="dsBaseN" spellChecking="false"/>+			<itemData name="Complex" defStyleNum="dsOthers" spellChecking="false"/>+			<itemData name="Comment" defStyleNum="dsComment"/>+			<itemData name="String" defStyleNum="dsString"/>+			<itemData name="Raw String" defStyleNum="dsVerbatimString"/>+			<itemData name="F-String" defStyleNum="dsSpecialString"/>+			<itemData name="Raw F-String" defStyleNum="dsVerbatimString"/>+			<itemData name="B-String" defStyleNum="dsString" spellChecking="false"/>+			<itemData name="Raw B-String" defStyleNum="dsVerbatimString" spellChecking="false"/>+			<itemData name="String Char" defStyleNum="dsChar" spellChecking="false"/>+			<itemData name="String Substitution" defStyleNum="dsSpecialChar" spellChecking="false"/>+			<itemData name="Decorator" defStyleNum="dsAttribute" spellChecking="false"/>+			<itemData name="Error" defStyleNum="dsError"/>+			<!-- Regex -->+			<itemData name="Regex Alternation" defStyleNum="dsControlFlow" spellChecking="false"/>+			<itemData name="Regex Set" defStyleNum="dsPreprocessor" spellChecking="false"/>+			<itemData name="Regex Character Class" defStyleNum="dsExtension" spellChecking="false" bold="0"/>+			<itemData name="Regex Capturing" defStyleNum="dsKeyword" spellChecking="false"/>+			<itemData name="Regex Non-Capturing" defStyleNum="dsNormal" spellChecking="false"/>+			<itemData name="Regex Parenthesis" defStyleNum="dsExtension" spellChecking="false"/>+			<itemData name="Regex Parenthesis Options" defStyleNum="dsFunction" spellChecking="false"/>+			<itemData name="Regex Special" defStyleNum="dsDecVal" spellChecking="false"/>+			<itemData name="Regex Quantifier" defStyleNum="dsOperator" spellChecking="false"/>+			<itemData name="Regex Backreference" defStyleNum="dsVariable" spellChecking="false"/> 		</itemDatas> 	</highlighting> 	<general>
xml/rhtml.xml view
@@ -44,7 +44,7 @@ --> 	 <!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". -->-<language name="Ruby/Rails/RHTML" version="15" kateversion="5.79" section="Markup" extensions="*.rhtml;*.RHTML;*.html.erb" mimetype="" author="Richard Dale rdale@foton.es" license="LGPLv2+">+<language name="Ruby/Rails/RHTML" version="16" kateversion="5.79" section="Markup" extensions="*.rhtml;*.RHTML;*.erb" mimetype="" author="Richard Dale rdale@foton.es" license="LGPLv2+" priority="1"> 	 	<highlighting> 	
xml/ruby.xml view
@@ -1,922 +1,1394 @@ <?xml version="1.0" encoding="UTF-8"?>-<!DOCTYPE language>--<!---  Ruby syntax highlighting definition for Kate.--  Copyright (C) 2004  by Sebastian Vuorinen (sebastian dot vuorinen at helsinki dot fi)-  Copyright (C) 2004  by Stefan Lang (langstefan@gmx.at)-  Copyright (C) 2008  by Robin Pedersen (robinpeder@gmail.com)-  Copyright (C) 2011  by Miquel Sabaté (mikisabate@gmail.com)--  This library is free software; you can redistribute it and/or-  modify it under the terms of the GNU Library General Public-  License as published by the Free Software Foundation; either-  version 2 of the License, or (at your option) any later version.--  This library is distributed in the hope that it will be useful,-  but WITHOUT ANY WARRANTY; without even the implied warranty of-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU-  Library General Public License for more details.--  You should have received a copy of the GNU Library General Public-  License along with this library; if not, write to the-  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,-  Boston, MA  02110-1301, USA.--->--<!---    TODO: Division after gdl contexts is interpreted as regexp--->--<!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". -->-<language name="Ruby" alternativeNames="RB;JRuby" section="Scripts"-	  version="19" kateversion="5.0"-	  extensions="*.rb;*.rjs;*.rxml;*.xml.erb;*.js.erb;*.rake;Rakefile;Gemfile;*.gemspec;Vagrantfile"-	  mimetype="application/x-ruby"-	  style="ruby" indenter="ruby"-	  author="Stefan Lang (langstefan@gmx.at), Sebastian Vuorinen (sebastian.vuorinen@helsinki.fi), Robin Pedersen (robinpeder@gmail.com), Miquel Sabaté (mikisabate@gmail.com)" license="LGPLv2+">--	<highlighting>--		<list name="keywords">-			<item>BEGIN</item>-			<item>END</item>-			<item>and</item>-			<item>begin</item>-			<item>break</item>-			<item>case</item>-			<item>defined?</item>-			<item>do</item>-			<item>else</item>-			<item>elsif</item>-			<item>end</item>-			<item>ensure</item>-			<item>for</item>-			<item>if</item>-			<item>in</item>-			<item>next</item>-			<item>not</item>-			<item>or</item>-			<item>redo</item>-			<item>rescue</item>-			<item>retry</item>-			<item>return</item>-			<item>then</item>-			<item>unless</item>-			<item>until</item>-			<item>when</item>-			<item>yield</item>-		</list>--		<list name="access-control">-			<item>private_class_method</item>-			<item>private</item>-			<item>protected</item>-			<item>public_class_method</item>-			<item>public</item>-		</list>--		<list name="attribute-definitions">-			<item>attr_reader</item>-			<item>attr_writer</item>-			<item>attr_accessor</item>-		</list>--		<list name="definitions">-			<item>alias</item>-			<item>module</item>-			<item>class</item>-			<item>def</item>-			<item>undef</item>-		</list>--		<list name="pseudo-variables">-			<item>self</item>-			<item>super</item>-			<item>nil</item>-			<item>false</item>-			<item>true</item>-			<item>caller</item>-			<item>__FILE__</item>-			<item>__LINE__</item>-		</list>--		<list name="default-globals">-			<item>$stdout</item>-			<item>$defout</item>-			<item>$stderr</item>-			<item>$deferr</item>-			<item>$stdin</item>-		</list>--		<!-- Kernel module methods.-			NOTE: Methods ending in ? or !-				are included below as regexes.-		-->-		<list name="kernel-methods">-			<!-- backquote ` -->-			<item>abort</item>-			<item>at_exit</item>-			<item>autoload</item>-			<item>autoload?</item>-			<item>binding</item>-			<item>block_given?</item>-			<item>callcc</item>-			<item>caller</item>-			<item>catch</item>-			<item>chomp</item>-			<item>chomp!</item>-			<item>chop</item>-			<item>chop!</item>-			<item>eval</item>-			<item>exec</item>-			<item>exit</item>-			<item>exit!</item>-			<item>fail</item>-			<item>fork</item>-			<item>format</item>-			<item>getc</item>-			<item>gets</item>-			<item>global_variables</item>-			<item>gsub</item>-			<item>gsub!</item>-			<item>iterator?</item>-			<item>lambda</item>-			<item>load</item>-			<item>local_variables</item>-			<item>loop</item>-			<item>method_missing</item>-			<item>open</item>-			<item>p</item>-			<item>print</item>-			<item>printf</item>-			<item>proc</item>-			<item>putc</item>-			<item>puts</item>-			<item>raise</item>-			<item>rand</item>-			<item>readline</item>-			<item>readlines</item>-			<item>require</item>-			<item>require_relative</item>-			<item>scan</item>-			<item>select</item>-			<item>set_trace_func</item>-			<item>sleep</item>-			<item>split</item>-			<item>sprintf</item>-			<item>srand</item>-			<item>sub</item>-			<item>sub!</item>-			<item>syscall</item>-			<item>system</item>-			<item>test</item>-			<item>throw</item>-			<item>trace_var</item>-			<item>trap</item>-			<item>untrace_var</item>-			<item>warn</item>-		</list>--		<list name="mixin-methods">-			<item>extend</item>-			<item>include</item>-			<item>prepend</item>-			<item>refine</item>-			<item>using</item>-		</list>--		<contexts>-			<context name="Normal" attribute="Normal Text" lineEndContext="#stay">-				<!-- ruby ignores newline after \ -->-				<LineContinue attribute="Normal Text" context="Line Continue"/>--				<!-- __END__ token on own line. -->-				<RegExpr attribute="Keyword" String="^__END__$" context="DATA" column="0"/>--				<!-- "shebang" line -->-				<RegExpr attribute="Keyword" String="^#!\/.*" context="#stay" column="0"/>--				<!-- "def" - "end" blocks -->-				<!-- check for statement modifiers with regexes -->-				<DetectChar attribute="Operator" char="{" context="Find closing block brace" beginRegion="def block"/>-				<DetectChar attribute="Delimiter" char="}" context="check_div_1" endRegion="def block"/>-				<RegExpr attribute="Keyword" String="[=([]\s*(if|unless|while|until)\b|(while|until)\b(?!.*\bdo\b)|\;\s*(while|until)\b(?!.*\bdo\b)|\;\s*(if|unless)\b" context="#stay" beginRegion="def block"/>-				<RegExpr attribute="Keyword" String="(if|unless)\b" context="#stay" beginRegion="def block" firstNonSpace="true"/>-				<WordDetect attribute="Keyword" String="class" context="no_heredoc" beginRegion="def block"/>-				<WordDetect attribute="Keyword" String="module" context="#stay" beginRegion="def block"/>-				<WordDetect attribute="Keyword" String="begin" context="#stay" beginRegion="def block"/>-				<RegExpr attribute="Keyword" String="\bfor\b(?!.*\bdo\b)" context="#stay" beginRegion="def block"/>-				<WordDetect attribute="Keyword" String="case" context="#stay" beginRegion="def block"/>-				<WordDetect attribute="Keyword" String="do" context="#stay" beginRegion="def block"/>-				<WordDetect attribute="Keyword" String="def" context="#stay" beginRegion="def block"/>-				<WordDetect attribute="Keyword" String="end" context="#stay" endRegion="def block"/>-				<!-- elsif/else close the current block and start a new one -->-				<RegExpr attribute="Keyword" String="\b(else|elsif|rescue|ensure)\b" context="#stay" endRegion="def block" beginRegion="def block"/>--				<StringDetect attribute="Operator" String="..." context="#stay"/>-				<Detect2Chars attribute="Operator" char="." char1="." context="#stay"/>--				<!-- marks a message (being sent, not defined) -->-				<RegExpr attribute="Message" String="\.[_a-z][_a-zA-Z0-9]*(\?|\!|\b)" context="check_div_2"/>--				<!-- Check for "ASCII code operator". e.g.: ?a -->-				<RegExpr attribute="Dec" String="\s\?(\\M\-)?(\\C\-)?\\?\S" context="check_div_1"/>--				<keyword attribute="Keyword" String="keywords" context="#stay"/>-				<keyword attribute="Attribute Definition" String="attribute-definitions"  context="check_div_2"/>-				<keyword attribute="Access Control" String="access-control" context="check_div_2"/>-				<keyword attribute="Definition" String="definitions"  context="#stay" />-				<keyword attribute="Pseudo variable" String="pseudo-variables"  context="check_div_1"/>-				<keyword attribute="Default globals" String="default-globals" context="check_div_2"/>-				<keyword attribute="Kernel methods" String="kernel-methods" context="check_div_2"/>-				<keyword attribute="Module mixin methods" String="mixin-methods" context="check_div_2"/>--				<!-- (global) vars starting with $-						Match them before $_.-				-->-				<RegExpr attribute="Global Variable" String="\$[a-zA-Z_0-9]+|\$\-[a-zA-Z_]\b" context="check_div_1"/>-				<!-- special-character globals -->-				<RegExpr attribute="Default globals" String="\$[\d_*`+@;,.~=\!\$:?'/\\\-\&amp;&quot;&gt;&lt;]" context="check_div_1"/>-				<RegExpr attribute="Global Constant" String="\b[_A-Z]+[A-Z_0-9]+\b" context="check_div_2"/>-				<!-- Generally a module or class name like "File", "MyModule_1", .. -->-				<RegExpr attribute="Constant" String="\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\b" context="check_div_2"/>--				<!-- Numeric values. Note that we have to allow underscores between two digits (thus the creepy regular expressions). -->-				<RegExpr attribute="Hex" String="\b\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+" context="check_div_1"/>-				<RegExpr attribute="Bin" String="\b\-?0[bB]([01]|_[01])+" context="check_div_1"/>-				<RegExpr attribute="Octal" String="\b\-?0[1-7]([0-7]|_[0-7])*" context="check_div_1"/>-				<RegExpr attribute="Float" String="\b\-?[0-9]([0-9]|_[0-9])*\.[0-9]([0-9]|_[0-9])*([eE]\-?[1-9]([0-9]|_[0-9])*(\.[0-9]*)?)?" context="check_div_1"/>-				<RegExpr attribute="Dec" String="\b\-?[1-9]([0-9]|_[0-9])*\b" context="check_div_1"/>-				<Int attribute="Dec" context="check_div_1"/>-				<HlCChar attribute="Char" context="check_div_1"/>--				<!-- Check for =begin before assignment operator. -->-				<RegExpr attribute="Blockcomment" String="^=begin(?:\s|$)" context="Embedded documentation" beginRegion="comment block" column="0"/>--				<!-- recognize the beginning of a HEREDOC-					This uses new features in Kate 2.3 and later--					There is no other chance of keeping heredoc apart from the-					push operator '<<' than requiring to put space between the operator-					and the string.-				-->-				<RegExpr attribute="Operator" context="find_indented_heredoc" String="\s*&lt;&lt;[-~](?=\w+|[&quot;'`])" beginRegion="HereDocument" />-				<RegExpr attribute="Operator" context="find_heredoc" String="\s*&lt;&lt;(?=\w+|[&quot;'`])" beginRegion="HereDocument" />--				<DetectChar attribute="Operator" char="." context="#stay"/>-				<Detect2Chars attribute="Operator" char="&amp;" char1="&amp;" context="#stay"/>-				<Detect2Chars attribute="Operator" char="|" char1="|" context="#stay"/>-				<!-- \s! is regexp hack -->-				<RegExpr attribute="Operator" String="\s[\?\:\%]\s|[|&amp;&lt;&gt;\^\+*~\-=]+|\s!|/=\s" context="#stay"/>-				<Detect2Chars attribute="Operator" char="%" char1="=" context="#stay"/>-				<Detect2Chars attribute="Operator" char=":" char1=":" context="Member Access"/>--				<RegExpr attribute="Symbol" String=":(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?|:\[\]=?" context="check_div_1"/>--				<!-- Do not send to "check_div_1" context!:-				     after detecting these rules (": ") there can be a regular expression (see bug: #361875) -->-				<RegExpr attribute="Symbol" String="(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?: |\[\]=?: " context="#stay"/>--				<DetectChar attribute="String" char="&quot;" context="Quoted String"/>-				<DetectChar attribute="Raw String" char="'" context="Apostrophed String"/>-				<DetectChar attribute="Command" char="`" context="Command String"/>--				<Detect2Chars attribute="Normal Text" char="?" char1="#" context="#stay"/>--				<RegExpr attribute="Comment" String="^#\s*BEGIN.*$"  context="#stay" beginRegion="marker" column="0"/>-				<RegExpr attribute="Comment" String="^#\s*END.*$"  context="#stay" endRegion="marker" column="0"/>-				<DetectChar attribute="Comment" char="#" context="General Comment"/>--				<DetectChar attribute="Delimiter" char="["  context="#stay"/>-				<DetectChar attribute="Delimiter" char="]"  context="check_div_1"/>--				<RegExpr attribute="Instance Variable" String="@[a-zA-Z_0-9]+" context="check_div_1"/>-				<RegExpr attribute="Class Variable" String="@@[a-zA-Z_0-9]+" context="check_div_1"/>--				<!-- handle the different regular expression formats -->-				<DetectChar attribute="Regular Expression" char="/" context="RegEx 1"/>--				<!-- recognize the beginning of a general delimited input format -->-				<!-- this moves to the next context to separate out the exact nature of the GDL input -->-				<RegExpr attribute="GDL input" context="find_gdl_input" String="\s*[%](?=[QqxwW]?[^\s])" beginRegion="GdlInput" />--				<DetectChar attribute="Normal Text" char=")" context="check_div_1"/>-				<DetectIdentifier attribute="Normal Text" context="check_div_2"/>--			</context>--			<!-- In the following contexts, a slash character ('/') is a division operator -->-			<!-- Everywhere else, it's a regular expression delimiter -->--			<!-- A slash is always a division operator, even if preceeded by whitespace -->-			<context name="check_div_1" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop">-				<DetectSpaces attribute="Normal Text" context="#stay"/>-				<AnyChar attribute="Operator" String="/%" context="#pop"/>-			</context>--			<!-- Same as check_div_1, but with double pop to exit the surrounding context -->-			<context name="check_div_1_pop" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">-				<DetectSpaces attribute="Normal Text" context="#stay"/>-				<AnyChar attribute="Operator" String="/%" context="#pop#pop"/>-			</context>--			<!-- A slash is division operator if it's the first character, or if preceeded and followed by whitespace -->-			<context name="check_div_2" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop">-				<AnyChar attribute="Operator" String="/%" context="#pop"/>-				<DetectSpaces attribute="Normal Text" context="check_div_2_internal"/>-			</context>--			<!-- Internal context used by check_div_2 -->-			<context name="check_div_2_internal" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">-<!-- 				<DetectChar attribute="Operator" char="%" context="#pop#pop"/> -->-				<RegExpr attribute="Operator" String="[/%](?=\s)" context="#pop#pop"/>-			</context>--			<!-- Same as check_div_2, but with double pop to exit the surrounding context -->-			<context name="check_div_2_pop" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">-				<AnyChar attribute="Operator" String="/%" context="#pop#pop"/>-				<DetectSpaces attribute="Normal Text" context="check_div_2_pop_internal"/>-			</context>--			<!-- Internal context used by check_div_2_pop -->-			<context name="check_div_2_pop_internal" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop#pop" lineEndContext="#pop#pop#pop">-				<DetectChar attribute="Operator" char="%" context="#pop#pop#pop"/>-				<RegExpr attribute="Operator" String="/(?=\s)" context="#pop#pop#pop"/>-			</context>--			<context name="Line Continue" attribute="Normal Text" lineEndContext="#pop">-				<RegExpr attribute="Keyword" String="(while|until)\b(?!.*\bdo\b)|(if|unless)\b" context="#stay" firstNonSpace="true"/>-				<IncludeRules context="Normal"/>-			</context>--			<context name="Find closing block brace" attribute="Normal Text" lineEndContext="#stay">-				<DetectChar attribute="Operator" char="}" context="check_div_1_pop" endRegion="def block"/>-				<IncludeRules context="Normal"/>-			</context>--			<context name="Quoted String" attribute="String" lineEndContext="#stay">-				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>-				<Detect2Chars attribute="String" char="\" char1="&quot;" context="#stay"/>-				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>-				<Detect2Chars attribute="Substitution" char="#" char1="$" context="Short Subst"/>-				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>-				<DetectChar char="&quot;" attribute="String" context="check_div_1_pop"/>-			</context>--			<context name="Apostrophed String" attribute="Raw String" lineEndContext="#stay">-				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>-				<Detect2Chars attribute="String" char="\" char1="'" context="#stay"/>-				<DetectChar char="'" attribute="Raw String" context="check_div_1_pop"/>-			</context>--			<context name="Command String" attribute="Command" lineEndContext="#stay">-				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>-				<Detect2Chars attribute="String" char="\" char1="`" context="#stay"/>-				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>-				<Detect2Chars attribute="Substitution" char="#" char1="$" context="Short Subst"/>-				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>-				<DetectChar char="`" attribute="Command" context="check_div_1_pop"/>-			</context>--			<context name="Embedded documentation" attribute="Blockcomment" lineEndContext="#stay">-				<RegExpr attribute="Comment" String="^=end(?:\s.*|$)" context="#pop" endRegion="comment block" column="0"/>-				<DetectSpaces />-				<IncludeRules context="##Comments" />-			</context>--			<context name="RegEx 1" attribute="Regular Expression" lineEndContext="#stay">-				<Detect2Chars attribute="Regular Expression" char="\" char1="/" context="#stay"/>-				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>-				<Detect2Chars attribute="Substitution" char="#" char1="$" context="Short Subst"/>-				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>-				<RegExpr attribute="Regular Expression" String="/[uiomxn]*" context="check_div_1_pop"/>-			</context>--			<!-- Substitutions can be nested -->-			<context name="Subst" attribute="Normal Text" lineEndContext="#stay">-				<DetectChar attribute="Substitution" char="}" context="#pop"/>-				<!-- Highlight substitution as code. -->-				<IncludeRules context="Normal"/>-			</context>--			<context name="Short Subst" attribute="Substitution" lineEndContext="#pop">-				<!-- Check for e.g.: "#@var#@@xy" -->-				<RegExpr attribute="Substitution" String="#@{1,2}" context="#stay"/>-				<Detect2Chars attribute="Substitution" char="#" char1="$" context="#stay"/>-				<RegExpr attribute="Substitution" String="\w(?!\w)" context="#pop"/>-			</context>--			<!-- This handles access of nested module classes and class methods -->-			<context name="Member Access" attribute="Member" lineEndContext="#pop">-				<!-- marks a message (being sent, not defined) -->-				<RegExpr attribute="Message" String="\.?[_a-z]\w*(\?|\!)?(?=[^\w\d\.\:])" context="check_div_2_pop"/>-				<RegExpr attribute="Message" String="\.?[_a-z]\w*(\?|\!)?" context="#stay"/>-				<RegExpr attribute="Constant" String="[A-Z]+_*(\d|[a-z])\w*(?=[^\w\d\.\:])" context="check_div_2_pop"/>-				<RegExpr attribute="Constant" String="[A-Z]+_*([0-9]|[a-z])\w*" context="#stay"/>-				<RegExpr attribute="Constant Value" String="[_A-Z][_A-Z0-9]*(?=[^\w\d\.\:])" context="check_div_2_pop"/>-				<RegExpr attribute="Constant Value" String="[_A-Z][_A-Z0-9]*" context="#stay"/>-				<Detect2Chars attribute="Operator" char=":" char1=":" context="#stay"/>-				<DetectChar attribute="Member" char="." context="#stay"/>--				<AnyChar attribute="Operator" String="=+-*/%|&amp;[]{}~" context="#pop"/>-				<DetectChar attribute="Comment" char="#" context="#pop"/>-				<AnyChar attribute="Normal Text" String="()\" context="#pop"/>-				<RegExpr attribute="Member" String="\W" context="#pop"/>-			</context>--			<context name="General Comment" attribute="Comment" lineEndContext="#pop">-				<DetectSpaces />-				<IncludeRules context="##Comments" />-			</context>--			<!-- HEREDOC support-				The contexts below support both normal and indented heredocs-			 -->-			<!-- here we markup the heredoc markers -->-			<context name="find_heredoc" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">-				<RegExpr attribute="Keyword" context="apostrophed_normal_heredoc" String="'(\w+)'" />-				<RegExpr attribute="Keyword" context="normal_heredoc" String="(?|(\w+)|&quot;(\w+)&quot;|`(\w+)`)" />-			</context>-			<context name="find_indented_heredoc" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">-				<RegExpr attribute="Keyword" context="apostrophed_indented_heredoc" String="'(\w+)'" />-				<RegExpr attribute="Keyword" context="indented_heredoc" String="(?|(\w+)|&quot;(\w+)&quot;|`(\w+)`)" />-			</context>-			<!-- these are the real heredoc contexts -->-			<context name="indented_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">-				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true"/>-				<IncludeRules context="heredoc_rules" />-			</context>-			<context name="apostrophed_indented_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">-				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true"/>-			</context>--			<context name="normal_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">-				<RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument" column="0"/>-				<IncludeRules context="heredoc_rules" />-			</context>-			<context name="apostrophed_normal_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">-				<RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument" column="0"/>-			</context>--			<!-- rules for heredoc types -->-			<context name="heredoc_rules" attribute="Normal Text" lineEndContext="#stay">-				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>-				<Detect2Chars attribute="Substitution" char="#" char1="$" context="Short Subst"/>-				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>-			</context>--			<!-- avoid highlighting heredoc markers, for example, in singleton class definition (see bug: #358273) -->-			<context name="no_heredoc" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">-				<DetectSpaces />-				<Detect2Chars attribute="Operator" char="&lt;" char1="&lt;" context="#pop"/>-				<!-- comments -->-				<RegExpr attribute="Comment" String="^#\s*BEGIN.*$"  context="#stay" beginRegion="marker" column="0"/>-				<RegExpr attribute="Comment" String="^#\s*END.*$"  context="#stay" endRegion="marker" column="0"/>-				<DetectChar attribute="Comment" char="#" context="General Comment"/>-			</context>--			<!-- General delimited input support-				The contexts below handle the various gdl formats-			 -->-			<context name="find_gdl_input" attribute="Normal Text" lineEndContext="#pop">--				<!-- handle token arrays -->-				<Detect2Chars attribute="GDL input" context="gdl_token_array_1" char="w" char1="(" />-				<Detect2Chars attribute="GDL input" context="gdl_token_array_2" char="w" char1="{" />-				<Detect2Chars attribute="GDL input" context="gdl_token_array_3" char="w" char1="[" />-				<Detect2Chars attribute="GDL input" context="gdl_token_array_4" char="w" char1="&lt;" />-				<!-- then we handle the 'any char' format -->-				<RegExpr attribute="GDL input" context="gdl_token_array_5" String="w([^\s\w])" />--				<!-- handle token arrays -->-				<Detect2Chars attribute="GDL input" context="gdl_token_array_1" char="W" char1="(" />-				<Detect2Chars attribute="GDL input" context="gdl_token_array_2" char="W" char1="{" />-				<Detect2Chars attribute="GDL input" context="gdl_token_array_3" char="W" char1="[" />-				<Detect2Chars attribute="GDL input" context="gdl_token_array_4" char="W" char1="&lt;" />-				<!-- then we handle the 'any char' format -->-				<RegExpr attribute="GDL input" context="gdl_token_array_5" String="W([^\s\w])" />--				<!-- handle apostrophed strings -->-				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_1" char="q" char1="(" />-				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_2" char="q" char1="{" />-				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_3" char="q" char1="[" />-				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_4" char="q" char1="&lt;" />-				<!-- then we handle the 'any char' format -->-				<RegExpr attribute="GDL input" context="gdl_apostrophed_5" String="q([^\s\w])" />--				<!-- handle shell commands -->-				<Detect2Chars attribute="GDL input" context="gdl_shell_command_1" char="x" char1="(" />-				<Detect2Chars attribute="GDL input" context="gdl_shell_command_2" char="x" char1="{" />-				<Detect2Chars attribute="GDL input" context="gdl_shell_command_3" char="x" char1="[" />-				<Detect2Chars attribute="GDL input" context="gdl_shell_command_4" char="x" char1="&lt;" />-				<!-- then we handle the 'any char' format -->-				<RegExpr attribute="GDL input" context="gdl_shell_command_5" String="x([^\s\w])" />--				<!-- handle regular expressions -->-				<Detect2Chars attribute="GDL input" context="gdl_regexpr_1" char="r" char1="(" />-				<Detect2Chars attribute="GDL input" context="gdl_regexpr_2" char="r" char1="{" />-				<Detect2Chars attribute="GDL input" context="gdl_regexpr_3" char="r" char1="[" />-				<Detect2Chars attribute="GDL input" context="gdl_regexpr_4" char="r" char1="&lt;" />-				<!-- then we handle the 'any char' format -->-				<RegExpr attribute="GDL input" context="gdl_regexpr_5" String="r([^\s\w])" />--				<!-- handle double-quoted strings -->-				<!---					  be careful to make this the last GDL ruleset, because the rule for-					  the short form %?foo? will otherwise catch any of the other formats-				-->-				<Detect2Chars attribute="GDL input" context="gdl_dq_string_1" char="Q" char1="(" />-				<Detect2Chars attribute="GDL input" context="gdl_dq_string_2" char="Q" char1="{" />-				<Detect2Chars attribute="GDL input" context="gdl_dq_string_3" char="Q" char1="[" />-				<Detect2Chars attribute="GDL input" context="gdl_dq_string_4" char="Q" char1="&lt;" />-				<DetectChar attribute="GDL input" context="gdl_dq_string_1" char="(" />-				<DetectChar attribute="GDL input" context="gdl_dq_string_2" char="{" />-				<DetectChar attribute="GDL input" context="gdl_dq_string_3" char="[" />-				<DetectChar attribute="GDL input" context="gdl_dq_string_4" char="&lt;" />-				<!-- then we handle the 'any char' format -->-				<RegExpr attribute="GDL input" context="gdl_dq_string_5" String="Q?([^\s\w])" />--			</context>-			<!-- double-quoted string specific contexts follow -->-			<context name="gdl_dq_string_1" attribute="String" lineEndContext="#stay" >-				<IncludeRules context="dq_string_rules" />-				<Detect2Chars attribute="String" char="\" char1=")" context="#stay"/>-				<DetectChar attribute="String" context="gdl_dq_string_1_nested" char="(" />-				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />-			</context>-			<context name="gdl_dq_string_1_nested" attribute="String" lineEndContext="#stay" >-				<IncludeRules context="dq_string_rules" />-				<DetectChar attribute="String" context="gdl_dq_string_1_nested" char="(" />-				<DetectChar attribute="String" context="#pop" char=")" />-			</context>-			<!-- note that here substitution should win over nesting -->-			<context name="gdl_dq_string_2" attribute="String" lineEndContext="#stay" >-				<IncludeRules context="dq_string_rules" />-				<Detect2Chars attribute="String" char="\" char1="}" context="#stay"/>-				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />-				<DetectChar attribute="String" context="gdl_dq_string_2_nested" char="{" />-			</context>-			<context name="gdl_dq_string_2_nested" attribute="String" lineEndContext="#stay" >-				<DetectChar attribute="String" context="gdl_dq_string_2_nested" char="{" />-				<DetectChar attribute="String" context="#pop" char="}" />-				<IncludeRules context="dq_string_rules" />-			</context>--			<context name="gdl_dq_string_3" attribute="String" lineEndContext="#stay" >-				<IncludeRules context="dq_string_rules" />-				<Detect2Chars attribute="String" char="\" char1="]" context="#stay"/>-				<DetectChar attribute="String" context="gdl_dq_string_3_nested" char="[" />-				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />-			</context>-			<context name="gdl_dq_string_3_nested" attribute="String" lineEndContext="#stay" >-				<DetectChar attribute="String" context="gdl_dq_string_3_nested" char="[" />-				<DetectChar attribute="String" context="#pop" char="]" />-				<IncludeRules context="dq_string_rules" />-			</context>--			<context name="gdl_dq_string_4" attribute="String" lineEndContext="#stay" >-				<IncludeRules context="dq_string_rules" />-				<Detect2Chars attribute="String" char="\" char1="&gt;" context="#stay"/>-				<DetectChar attribute="String" context="gdl_dq_string_4_nested" char="&lt;" />-				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />-			</context>-			<context name="gdl_dq_string_4_nested" attribute="String" lineEndContext="#stay" >-				<DetectChar attribute="String" context="gdl_dq_string_4_nested" char="&lt;" />-				<DetectChar attribute="String" context="#pop" char="&gt;" />-				<IncludeRules context="dq_string_rules" />-			</context>--			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the-				delimiter character-			 -->-			<context name="gdl_dq_string_5" attribute="String" lineEndContext="#stay" dynamic="true">-				<IncludeRules context="dq_string_rules" />-				<StringDetect attribute="String" String="\%1" context="#stay" dynamic="true" />-				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />-			</context>-			<!-- rules to be included in all dq_string contexts -->-			<context name="dq_string_rules" attribute="String" lineEndContext="#stay" >-				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>-				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>-				<Detect2Chars attribute="Substitution" char="#" char1="$" context="Short Subst"/>-				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>-			</context>--			<!-- token array specific contexts -->--			<context name="gdl_token_array_1" attribute="String" lineEndContext="#stay" >-				<IncludeRules context="token_array_rules" />-				<Detect2Chars attribute="String" char="\" char1=")" context="#stay"/>-				<DetectChar attribute="String" context="gdl_token_array_1_nested" char="(" />-				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />-			</context>-			<context name="gdl_token_array_1_nested" attribute="String" lineEndContext="#stay" >-				<IncludeRules context="token_array_rules" />-				<DetectChar attribute="String" context="gdl_token_array_1_nested" char="(" />-				<DetectChar attribute="String" context="#pop" char=")" />-			</context>--			<context name="gdl_token_array_2" attribute="String" lineEndContext="#stay" >-				<IncludeRules context="token_array_rules" />-				<Detect2Chars attribute="String" char="\" char1="}" context="#stay"/>-				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />-				<DetectChar attribute="String" context="gdl_token_array_2_nested" char="{" />-			</context>-			<context name="gdl_token_array_2_nested" attribute="String" lineEndContext="#stay" >-				<IncludeRules context="token_array_rules" />-				<DetectChar attribute="String" context="gdl_token_array_2_nested" char="{" />-				<DetectChar attribute="String" context="#pop" char="}" />-			</context>--			<context name="gdl_token_array_3" attribute="String" lineEndContext="#stay" >-				<IncludeRules context="token_array_rules" />-				<Detect2Chars attribute="String" char="\" char1="]" context="#stay"/>-				<DetectChar attribute="String" context="gdl_token_array_3_nested" char="[" />-				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />-			</context>-			<context name="gdl_token_array_3_nested" attribute="String" lineEndContext="#stay" >-				<IncludeRules context="token_array_rules" />-				<DetectChar attribute="String" context="gdl_token_array_3_nested" char="[" />-				<DetectChar attribute="String" context="#pop" char="]" />-			</context>--			<context name="gdl_token_array_4" attribute="String" lineEndContext="#stay" >-				<IncludeRules context="token_array_rules" />-				<Detect2Chars attribute="String" char="\" char1="&gt;" context="#stay"/>-				<DetectChar attribute="String" context="gdl_token_array_4_nested" char="&lt;" />-				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />-			</context>-			<context name="gdl_token_array_4_nested" attribute="String" lineEndContext="#stay" >-				<IncludeRules context="token_array_rules" />-				<DetectChar attribute="String" context="gdl_token_array_4_nested" char="&lt;" />-				<DetectChar attribute="String" context="#pop" char="&gt;" />-			</context>--			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the-				delimiter character-			 -->-			<context name="gdl_token_array_5" attribute="String" lineEndContext="#stay" dynamic="true">-				<IncludeRules context="token_array_rules" />-				<StringDetect attribute="String" String="\%1" context="#stay" dynamic="true"/>-				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />-			</context>--			<!-- rules to be included in all token_array contexts -->-			<context name="token_array_rules" attribute="String" lineEndContext="#stay" >-				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>-			</context>--			<!-- apostrophed string specific contexts -->--			<context name="gdl_apostrophed_1" attribute="Raw String" lineEndContext="#stay" >-				<IncludeRules context="apostrophed_rules" />-				<Detect2Chars attribute="Raw String" char="\" char1=")" context="#stay"/>-				<DetectChar attribute="Raw String" context="gdl_apostrophed_1_nested" char="(" />-				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />-			</context>-			<context name="gdl_apostrophed_1_nested" attribute="Raw String" lineEndContext="#stay" >-				<IncludeRules context="apostrophed_rules" />-				<DetectChar attribute="Raw String" context="gdl_apostrophed_1_nested" char="(" />-				<DetectChar attribute="Raw String" context="#pop" char=")" />-			</context>--			<context name="gdl_apostrophed_2" attribute="Raw String" lineEndContext="#stay" >-				<IncludeRules context="apostrophed_rules" />-				<Detect2Chars attribute="Raw String" char="\" char1="}" context="#stay"/>-				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />-				<DetectChar attribute="Raw String" context="gdl_apostrophed_2_nested" char="{" />-			</context>-			<context name="gdl_apostrophed_2_nested" attribute="Raw String" lineEndContext="#stay" >-				<IncludeRules context="apostrophed_rules" />-				<DetectChar attribute="Raw String" context="gdl_apostrophed_2_nested" char="{" />-				<DetectChar attribute="Raw String" context="#pop" char="}" />-			</context>--			<context name="gdl_apostrophed_3" attribute="Raw String" lineEndContext="#stay" >-				<IncludeRules context="apostrophed_rules" />-				<Detect2Chars attribute="Raw String" char="\" char1="]" context="#stay"/>-				<DetectChar attribute="Raw String" context="gdl_apostrophed_3_nested" char="[" />-				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />-			</context>-			<context name="gdl_apostrophed_3_nested" attribute="Raw String" lineEndContext="#stay" >-				<IncludeRules context="apostrophed_rules" />-				<DetectChar attribute="Raw String" context="gdl_apostrophed_3_nested" char="[" />-				<DetectChar attribute="Raw String" context="#pop" char="]" />-			</context>--			<context name="gdl_apostrophed_4" attribute="Raw String" lineEndContext="#stay" >-				<IncludeRules context="apostrophed_rules" />-				<Detect2Chars attribute="Raw String" char="\" char1="&gt;" context="#stay"/>-				<DetectChar attribute="Raw String" context="gdl_apostrophed_4_nested" char="&lt;" />-				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />-			</context>-			<context name="gdl_apostrophed_4_nested" attribute="Raw String" lineEndContext="#stay" >-				<IncludeRules context="apostrophed_rules" />-				<DetectChar attribute="Raw String" context="gdl_apostrophed_4_nested" char="&lt;" />-				<DetectChar attribute="Raw String" context="#pop" char="&gt;" />-			</context>--			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the-				delimiter character-			 -->-			<context name="gdl_apostrophed_5" attribute="Raw String" lineEndContext="#stay" dynamic="true">-				<IncludeRules context="apostrophed_rules" />-				<StringDetect attribute="Raw String" String="\%1" context="#stay" dynamic="true"/>-				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />-			</context>--			<!-- rules to be included in all apostrophed contexts -->-			<context name="apostrophed_rules" attribute="Raw String" lineEndContext="#stay" >-				<Detect2Chars attribute="Raw String" char="\" char1="\" context="#stay"/>-			</context>--			<!-- shell command specific contexts -->--			<context name="gdl_shell_command_1" attribute="Command" lineEndContext="#stay" >-				<IncludeRules context="shell_command_rules" />-				<Detect2Chars attribute="Command" char="\" char1=")" context="#stay"/>-				<DetectChar attribute="Command" context="gdl_shell_command_1_nested" char="(" />-				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />-			</context>-			<context name="gdl_shell_command_1_nested" attribute="Command" lineEndContext="#stay" >-				<IncludeRules context="shell_command_rules" />-				<DetectChar attribute="Command" context="gdl_shell_command_1_nested" char="(" />-				<DetectChar attribute="Command" context="#pop" char=")" />-			</context>--			<context name="gdl_shell_command_2" attribute="Command" lineEndContext="#stay" >-				<IncludeRules context="shell_command_rules" />-				<Detect2Chars attribute="Command" char="\" char1="}" context="#stay"/>-				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />-				<DetectChar attribute="Command" context="gdl_shell_command_2_nested" char="{" />-			</context>-			<context name="gdl_shell_command_2_nested" attribute="Command" lineEndContext="#stay" >-				<IncludeRules context="shell_command_rules" />-				<DetectChar attribute="Command" context="gdl_shell_command_2_nested" char="{" />-				<DetectChar attribute="Command" context="#pop" char="}" />-			</context>--			<context name="gdl_shell_command_3" attribute="Command" lineEndContext="#stay" >-				<IncludeRules context="shell_command_rules" />-				<Detect2Chars attribute="Command" char="\" char1="]" context="#stay"/>-				<DetectChar attribute="Command" context="gdl_shell_command_3_nested" char="[" />-				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />-			</context>-			<context name="gdl_shell_command_3_nested" attribute="Command" lineEndContext="#stay" >-				<IncludeRules context="shell_command_rules" />-				<DetectChar attribute="Command" context="gdl_shell_command_3_nested" char="[" />-				<DetectChar attribute="Command" context="#pop" char="]" />-			</context>--			<context name="gdl_shell_command_4" attribute="Command" lineEndContext="#stay" >-				<IncludeRules context="shell_command_rules" />-				<Detect2Chars attribute="Command" char="\" char1="&gt;" context="#stay"/>-				<DetectChar attribute="Command" context="gdl_shell_command_4_nested" char="&lt;" />-				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />-			</context>-			<context name="gdl_shell_command_4_nested" attribute="Command" lineEndContext="#stay" >-				<IncludeRules context="shell_command_rules" />-				<DetectChar attribute="Command" context="gdl_shell_command_4_nested" char="&lt;" />-				<DetectChar attribute="Command" context="#pop" char="&gt;" />-			</context>--			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the-				delimiter character-			 -->-			<context name="gdl_shell_command_5" attribute="Command" lineEndContext="#stay" dynamic="true">-				<IncludeRules context="shell_command_rules" />-				<StringDetect attribute="Command" String="\%1" context="#stay" dynamic="true" />-				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />-			</context>--			<!-- rules to be included in all shell_command contexts -->-			<context name="shell_command_rules" attribute="Command" lineEndContext="#stay" >-				<Detect2Chars attribute="Command" char="\" char1="\" context="#stay"/>-				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>-				<Detect2Chars attribute="Substitution" char="#" char1="$" context="Short Subst"/>-				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>-			</context>--			<!-- regular expression specific contexts -->--			<context name="gdl_regexpr_1" attribute="Regular Expression" lineEndContext="#stay" >-				<IncludeRules context="regexpr_rules" />-				<Detect2Chars attribute="Regular Expression" char="\" char1=")" context="#stay"/>-				<DetectChar attribute="Regular Expression" context="gdl_regexpr_1_nested" char="(" />-				<RegExpr attribute="GDL input" context="#pop#pop" String="\)[uiomxn]*" endRegion="GdlInput" />-			</context>-			<context name="gdl_regexpr_1_nested" attribute="Regular Expression" lineEndContext="#stay" >-				<IncludeRules context="regexpr_rules" />-				<DetectChar attribute="Regular Expression" context="gdl_regexpr_1_nested" char="(" />-				<DetectChar attribute="Regular Expression" context="#pop" char=")" />-			</context>--			<context name="gdl_regexpr_2" attribute="Regular Expression" lineEndContext="#stay" >-				<IncludeRules context="regexpr_rules" />-				<Detect2Chars attribute="Regular Expression" char="\" char1="}" context="#stay"/>-				<RegExpr attribute="GDL input" context="#pop#pop" String="\}[uiomxn]*" endRegion="GdlInput" />-				<DetectChar attribute="Regular Expression" context="gdl_regexpr_2_nested" char="{" />-			</context>-			<context name="gdl_regexpr_2_nested" attribute="Regular Expression" lineEndContext="#stay" >-				<IncludeRules context="regexpr_rules" />-				<DetectChar attribute="Regular Expression" context="gdl_regexpr_2_nested" char="{" />-				<DetectChar attribute="Regular Expression" context="#pop" char="}" />-			</context>--			<context name="gdl_regexpr_3" attribute="Regular Expression" lineEndContext="#stay" >-				<IncludeRules context="regexpr_rules" />-				<Detect2Chars attribute="Regular Expression" char="\" char1="]" context="#stay"/>-				<DetectChar attribute="Regular Expression" context="gdl_regexpr_3_nested" char="[" />-				<RegExpr attribute="GDL input" context="#pop#pop" String="\][uiomxn]*" endRegion="GdlInput" />-			</context>-			<context name="gdl_regexpr_3_nested" attribute="Regular Expression" lineEndContext="#stay" >-				<IncludeRules context="regexpr_rules" />-				<DetectChar attribute="Regular Expression" context="gdl_regexpr_3_nested" char="[" />-				<DetectChar attribute="Regular Expression" context="#pop" char="]" />-			</context>--			<context name="gdl_regexpr_4" attribute="Regular Expression" lineEndContext="#stay" >-				<IncludeRules context="regexpr_rules" />-				<Detect2Chars attribute="Regular Expression" char="\" char1="&gt;" context="#stay"/>-				<DetectChar attribute="Regular Expression" context="gdl_regexpr_4_nested" char="&lt;" />-				<RegExpr attribute="GDL input" context="#pop#pop" String="&gt;[uiomxn]*" endRegion="GdlInput" />-			</context>-			<context name="gdl_regexpr_4_nested" attribute="Regular Expression" lineEndContext="#stay" >-				<IncludeRules context="regexpr_rules" />-				<DetectChar attribute="Regular Expression" context="gdl_regexpr_4_nested" char="&lt;" />-				<DetectChar attribute="Regular Expression" context="#pop" char="&gt;" />-			</context>--			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the-				delimiter character-			 -->-			<context name="gdl_regexpr_5" attribute="Regular Expression" lineEndContext="#stay" dynamic="true">-				<IncludeRules context="regexpr_rules" />-				<StringDetect attribute="Regular Expression" String="\%1" context="#stay" dynamic="true" />-				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1[uiomxn]*" dynamic="true" endRegion="GdlInput" />-			</context>--			<!-- rules to be included in all regexpr contexts -->-			<context name="regexpr_rules" attribute="Regular Expression" lineEndContext="#stay" >-				<Detect2Chars attribute="Regular Expression" char="\" char1="\" context="#stay"/>-				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>-				<Detect2Chars attribute="Substitution" char="#" char1="$" context="Short Subst"/>-				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>-			</context>--			<!-- END of General delimited input support -->--			<!-- handle data in script -->-			<context name="DATA" attribute="Data" lineEndContext="#stay"/>-		</contexts>--		<itemDatas>-			<itemData name="Normal Text" defStyleNum="dsNormal"/>--			<itemData name="Keyword" defStyleNum="dsControlFlow"/>-			<itemData name="Attribute Definition" defStyleNum="dsOthers"/>-			<itemData name="Access Control" defStyleNum="dsAttribute" bold="1"/> <!-- #0000FF -->-			<itemData name="Definition" defStyleNum="dsKeyword"/>-			<itemData name="Pseudo variable" defStyleNum="dsDecVal"/>--			<itemData name="Dec" defStyleNum="dsDecVal"/>-			<itemData name="Float" defStyleNum="dsFloat"/>-			<itemData name="Char" defStyleNum="dsChar"/>-			<itemData name="Octal" defStyleNum="dsBaseN"/>-			<itemData name="Hex" defStyleNum="dsBaseN"/>-			<itemData name="Bin" defStyleNum="dsBaseN"/>--			<itemData name="Symbol" defStyleNum="dsWarning" bold="0" underline="0"/> <!-- #D40000 -->-			<itemData name="String" defStyleNum="dsString"/>-			<itemData name="Raw String" defStyleNum="dsVerbatimString" /> <!-- #DD4A4A -->-			<itemData name="Command" defStyleNum="dsInformation"/> <!-- #AA3000 -->-			<itemData name="Message" defStyleNum="dsAttribute" bold="0"/> <!-- #4000A7 -->-			<itemData name="Regular Expression" defStyleNum="dsSpecialString"/> <!-- #4A5704 -->-			<itemData name="Substitution"	defStyleNum="dsSpecialChar"/>-			<itemData name="Data" defStyleNum="dsNormal"/>-			<!-- short for 'general delimited input' -->-			<itemData name="GDL input" defStyleNum="dsOthers" />--			<itemData name="Default globals" defStyleNum="dsVariable" bold="1"/> <!-- #C00000 -->-			<itemData name="Global Variable" defStyleNum="dsVariable"/> <!-- #C00000 -->-			<itemData name="Global Constant" defStyleNum="dsConstant" bold="1"/> <!-- #bb1188 -->-			<itemData name="Constant" defStyleNum="dsDataType"/>-			<itemData name="Constant Value" defStyleNum="dsConstant" bold="0"/> <!-- #bb1188 -->-			<itemData name="Kernel methods" defStyleNum="dsFunction" bold="1"/> <!-- #CC0E86 -->-			<itemData name="Module mixin methods" defStyleNum="dsFunction" bold="1"/> <!-- #CC0E86 -->-			<itemData name="Member" defStyleNum="dsNormal"/>-			<itemData name="Instance Variable" defStyleNum="dsOthers"/>-			<itemData name="Class Variable" defStyleNum="dsOthers"/>--			<itemData name="Comment" defStyleNum="dsComment"/>-			<itemData name="Blockcomment" defStyleNum="dsComment"/>--			<itemData name="Here Document" defStyleNum="dsDocumentation"/>--			<itemData name="Delimiter" defStyleNum="dsKeyword"/> <!-- #FF9FEC -->-			<itemData name="Operator" defStyleNum="dsKeyword"/> <!-- #FF9FEC -->+<!DOCTYPE language[+		<!ENTITY dec "[0-9](_?[0-9]++)*+">+		<!ENTITY percent_lit "[QqxwWiIsr]?[^\s[:alnum:]]">++		<!ENTITY ident "[_[:alpha:]]\w*+">+		<!ENTITY global_constant "(?!^__END__$)(\b_+\d[_\d]*\b|\b(_[_\d]*)?[[:upper:]][_\d[:upper:]]*\b)">+		<!ENTITY constant "\b[[:upper:]][_\d[:upper:]]*[[:lower:]]\w*">+		<!ENTITY no_param "abort|alias|and|at_exit|attr_accessor|attr_reader|attr_writer|begin|binding|break|callcc|caller|case|catch|class|def|do|else|elsif|end|ensure|eval|exec|extend|fail|false|__FILE__|for|fork|format|getc|gets|global_variables|if|in|include|lambda|__LINE__|load|local_variables|loop|method_missing|module|next|nil|not|open|or|p|prepend|print|printf|private|private_class_method|proc|protected|public|public_class_method|putc|puts|raise|rand|readline|readlines|redo|refine|require|require_relative|rescue|retry|return|scan|select|self|set_trace_func|sleep|split|sprintf|srand|super|syscall|system|test|then|throw|trace_var|trap|true|undef|unless|until|untrace_var|using|warn|when|while|yield|autoload|chomp|chop|exit|gsub|sub">+		<!-- ignore keyword, constant, class name and symbol (e.g. sym:).+				Constants can be preceded by ? or !, but this doesn't work with <keyword>+		-->+		<!ENTITY is_constant "((_[_\d]*)?[[:upper:]]\w*+|_+\d[_\d]*+\b)([^?!]|$)">+		<!ENTITY ident_not_kw "\b((?!(abort|alias|and|at_exit|attr_accessor|attr_reader|attr_writer|begin|binding|break|callcc|caller|case|catch|class|def|do|else|elsif|end|ensure|eval|exec|extend|fail|false|for|fork|format|getc|gets|global_variables|if|in|include|lambda|load|local_variables|loop|method_missing|module|next|nil|not|open|or|p|prepend|print|printf|private|private_class_method|proc|protected|public|public_class_method|putc|puts|raise|rand|readline|readlines|redo|refine|require|require_relative|rescue|retry|return|scan|select|self|set_trace_func|sleep|split|sprintf|srand|super|syscall|system|test|then|throw|trace_var|trap|true|undef|unless|until|untrace_var|using|warn|when|while|yield)([^?!\w]|$)|\bautoload([^!\w]|$)|(block_given\?|defined\?|iterator\?)|(chomp|chop|exit|gsub|sub)([^?\w]|$)|&is_constant;)|(?&lt;=[!?])(?=[[:lower:]]))&ident;(?!:)[?!]?">+		<!ENTITY msg "\b(?!&is_constant;)&ident;[?!]?">++		<!ENTITY special_escape "[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u\{[0-9a-fA-F]{0,6}\}|u[0-9a-fA-F]{4}|(c(\\M-)?|C-|M-(\\c|\\C-)?)(\\([^0-7xucCM]|[0-7]{1,3}|x[0-9a-fA-F]{1,2}|$)|[ -BD-LN-\[\]-bd-tv-~])">+		<!ENTITY escape "\\([^0-7xucCM]|&special_escape;|$)">+		<!ENTITY partial_escape "[ux][0-9a-fA-F]*|u(\{[0-9a-fA-F]{0,6})?|(c(\\M-)?|C-|M-(\\c|\\C-)?)(\\[xucCM]?)?|c(\\M?)?|C|M(-(\\c?|\\(C-?)?)?)?">++		<!-- https://docs.ruby-lang.org/en/master/globals_rdoc.html -->+		<!-- $= $, $; are deprecated -->+		<!ENTITY global_var "\$([!@~&amp;`'+/\\&lt;>._*$?:&quot;=,;]|[0-9]+|-\w|[[:alpha:]]\w*)">++		<!-- without ? : % / < = -->+		<!ENTITY safe_op "(?:[-+*~^|&amp;]+|===?|&lt;(=>?|(?!&lt;))|[!>]=?|\.\.\.?)">+		<!ENTITY op1 "&safe_op;++|([?:/&#37;]|&lt;&lt;)&safe_op;*+">+		<!-- /= %= <<= -->+		<!-- / spaces -->+		<!-- % which is not gld -->+		<!-- << which is not heredoc -->+		<!-- nospace / -->+		<!-- nospace % -->+		<!-- nospace << -->+		<!ENTITY op2 "&safe_op;++|[?:](?=\s|$)|([/&#37;]|&lt;&lt;)(?=[\s=]|$)|&#37;(?!&percent_lit;)|&lt;&lt;(?=\s|$|[^-~\w'&quot;`]|[-~][^\w'&quot;`])|(?&lt;!\s)([/&#37;]|&lt;&lt;)&safe_op;*+">++		<!ENTITY sym_op "\[\]=?|[-+~]@?|![=~@]?|[/&#37;|^&amp;]|&lt;(=>?)?|>=?|=~|===?|\*\*?">+		<!ENTITY symbol "&ident;[=?!]?:(?!:)|\[\]=?:">+]>++<!--+  Ruby syntax highlighting definition for Kate.++  Copyright (C) 2004  by Sebastian Vuorinen (sebastian dot vuorinen at helsinki dot fi)+  Copyright (C) 2004  by Stefan Lang (langstefan@gmx.at)+  Copyright (C) 2008  by Robin Pedersen (robinpeder@gmail.com)+  Copyright (C) 2011  by Miquel Sabaté (mikisabate@gmail.com)+  Copyright (C) 2024  by Jonathan Poelen (jonathan.poelen@gmail.com)++  This library is free software; you can redistribute it and/or+  modify it under the terms of the GNU Library General Public+  License as published by the Free Software Foundation; either+  version 2 of the License, or (at your option) any later version.++  This library is distributed in the hope that it will be useful,+  but WITHOUT ANY WARRANTY; without even the implied warranty of+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+  Library General Public License for more details.++  You should have received a copy of the GNU Library General Public+  License along with this library; if not, write to the+  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,+  Boston, MA  02110-1301, USA.+-->++<!--+https://docs.ruby-lang.org/en/master/syntax_rdoc.html++Ruby syntax has various ambiguous and context-dependent elements++- regex (/patt/), percent literal (%_abc_) and heredoc (<<x) begin with operators.+    puts %q+1++         ~ percent literal+    puts a %q+1++           ~ operator+  Note that regexes and oercent literal are indecisive because they depend on whether+  the element on the left is a function or a variable. Therefore we assume a regex.+    foo /a # (without space after /) operator or regex ?+- 'do' creates a block (begin/endRegion), but is optional with 'for', 'until' and 'while'.+    for x in a+      puts x+    end++    for x in a do+      puts x+    end+- 'if', 'unless', 'until' and 'while' when preceded by a value are modifiers+  without closure (not a block region).+    a += 1 while a < 10+- '?' which is a function suffix, a literal char or a ternary operator+    foo??a?1: 2+    ~~~~ func+        ~~ char+          ~ ~ ternary operator++For consistent highlighting and regions, the syntax is split into 3 parts:+- function call (first element of an expression)+- operator+- value++Each token fits into one of its categories and is followed by 1 or more of its+categories. For example, 'and' is an operator followed by a function call,+operator or value in order of priority.+So '/' in 'and /' corresponds to a regex.++Notes:+- 'do' is a value that creates a block, except in the condition of 'for', 'until' and 'while'.+- 'if', 'unless', 'until' and 'while' are modifiers only in the value category.+-->++<!--+		NOTE This syntax should be synchronized with Haml, for which a ',' and ' |' at+		the end of a line correspond to a <LineContinue>.+-->++<language name="Ruby" alternativeNames="RB;JRuby" section="Scripts"+	  version="20" kateversion="5.79"+	  extensions="*.rb;*.rjs;*.rxml;*.xml.erb;*.js.erb;*.rake;Rakefile;Gemfile;*.gemspec;Vagrantfile"+	  mimetype="application/x-ruby"+	  style="ruby" indenter="ruby"+	  author="Stefan Lang (langstefan@gmx.at), Sebastian Vuorinen (sebastian.vuorinen@helsinki.fi), Robin Pedersen (robinpeder@gmail.com), Miquel Sabaté (mikisabate@gmail.com), Jonathan Poelen (jonathan.poelen@gmail.com)"+	  license="LGPLv2+">++	<highlighting>++		<list name="keyword">+			<item>class</item>+			<item>def</item>+			<item>end</item>+			<item>ensure</item>+			<item>when</item>+			<include>keyword-begin-end-cond</include>+			<include>keyword-block-cond</include>+			<include>keyword-block-then-value</include>+			<include>keyword-block</include>+			<include>keyword-loop</include>+			<include>keyword-then-stmt</include>+			<include>keyword-then-value</include>+		</list>++		<list name="keyword-then-value">+			<item>break</item>+			<item>defined?</item>+			<item>in</item>+			<item>next</item>+			<item>redo</item>+			<item>retry</item>+			<item>return</item>+			<item>yield</item>+		</list>++		<list name="keyword-then-stmt">+			<item>and</item>+			<item>not</item>+			<item>or</item>+			<item>then</item>+			<item>BEGIN</item>+			<item>END</item>+		</list>++		<list name="keyword-block">+			<item>begin</item>+			<item>do</item>+		</list>++		<list name="keyword-block-then-value">+			<item>case</item>+			<item>module</item>+		</list>++		<!-- keyword with optional 'then' -->+		<list name="keyword-block-cond">+			<item>if</item>+			<item>unless</item>+		</list>++		<list name="keyword-begin-end-cond">+			<item>else</item>+			<item>elsif</item>+			<item>rescue</item>+		</list>++		<!-- keyword with optional 'do' -->+		<list name="keyword-loop">+			<item>for</item>+			<item>until</item>+			<item>while</item>+		</list>++		<list name="keyword-modifiers">+			<item>if</item>+			<item>unless</item>+			<item>until</item>+			<item>while</item>+			<item>rescue</item>+		</list>++		<list name="access-control">+			<item>private_class_method</item>+			<item>private</item>+			<item>protected</item>+			<item>public_class_method</item>+			<item>public</item>+		</list>++		<list name="attribute-definitions">+			<item>attr_reader</item>+			<item>attr_writer</item>+			<item>attr_accessor</item>+		</list>++		<list name="definitions">+			<item>alias</item>+			<item>module</item>+			<item>class</item>+			<item>def</item>+			<item>undef</item>+		</list>++		<list name="pseudo-variables">+			<item>self</item>+			<item>super</item>+			<item>nil</item>+			<item>false</item>+			<item>true</item>+			<item>caller</item>+			<item>__FILE__</item>+			<item>__LINE__</item>+		</list>++		<list name="default-globals">+			<item>$stdout</item>+			<item>$stderr</item>+			<item>$stdin</item>+		</list>++		<!-- Kernel module methods.+			NOTE: Methods ending in ? or !+				are included below as regexes.+		-->+		<list name="kernel-methods">+			<!-- backquote ` -->+			<item>abort</item>+			<item>at_exit</item>+			<item>autoload</item>+			<item>autoload?</item>+			<item>binding</item>+			<item>block_given?</item>+			<item>callcc</item>+			<item>caller</item>+			<item>catch</item>+			<item>chomp</item>+			<item>chomp!</item>+			<item>chop</item>+			<item>chop!</item>+			<item>eval</item>+			<item>exec</item>+			<item>exit</item>+			<item>exit!</item>+			<item>fail</item>+			<item>fork</item>+			<item>format</item>+			<item>getc</item>+			<item>gets</item>+			<item>global_variables</item>+			<item>gsub</item>+			<item>gsub!</item>+			<item>iterator?</item>+			<item>lambda</item>+			<item>load</item>+			<item>local_variables</item>+			<item>loop</item>+			<item>method_missing</item>+			<item>open</item>+			<item>p</item>+			<item>print</item>+			<item>printf</item>+			<item>proc</item>+			<item>putc</item>+			<item>puts</item>+			<item>raise</item>+			<item>rand</item>+			<item>readline</item>+			<item>readlines</item>+			<item>require</item>+			<item>require_relative</item>+			<item>scan</item>+			<item>select</item>+			<item>set_trace_func</item>+			<item>sleep</item>+			<item>split</item>+			<item>sprintf</item>+			<item>srand</item>+			<item>sub</item>+			<item>sub!</item>+			<item>syscall</item>+			<item>system</item>+			<item>test</item>+			<item>throw</item>+			<item>trace_var</item>+			<item>trap</item>+			<item>untrace_var</item>+			<item>warn</item>+		</list>++		<list name="mixin-methods">+			<item>extend</item>+			<item>include</item>+			<item>prepend</item>+			<item>refine</item>+			<item>using</item>+		</list>++		<contexts>+			<context name="Normal" attribute="Normal Text" fallthroughContext="Ruby">+				<!-- "shebang" line -->+				<StringDetect attribute="Keyword" String="#!/" context="Shebang" column="0"/>+			</context>++			<context name="Shebang" attribute="Keyword" lineEndContext="#pop">+			</context>++			<context name="Ruby" attribute="Normal Text" fallthroughContext="Expr">+				<DetectSpaces attribute="Normal Text"/>++				<AnyChar attribute="Normal Text" String=";("/>+				<DetectChar attribute="Normal Text" char=")" context="Op1ThenExpr"/>++				<DetectChar attribute="Delimiter" char="]" context="Op1ThenExpr"/>++				<DetectChar attribute="Operator" char="{" beginRegion="brace"/>+				<DetectChar attribute="Operator" char="}" context="Op1ThenExpr" endRegion="brace"/>++				<DetectChar attribute="Comment" char="#" context="General Comment"/>++				<RegExpr attribute="Normal Text" String="&ident_not_kw;" context="MsgParamOrOp2"/>++				<!-- Detects key symbol in a hash+						 Unfortunately in the absence of a space before ':',+						 the syntax is ambiguous with a function call containing a symbol.++						 hash:    {sym:foo}+						 function: foo:sym  <- 'foo:' is considered as a symbol+				-->+				<RegExpr attribute="Symbol" String="&symbol;" context="MsgParamOrOp2"/>++				<DetectChar attribute="Delimiter" char="[" context="MsgParamOrOp2"/>++				<keyword attribute="Keyword" String="keyword-block" beginRegion="def block"/>+				<keyword attribute="Keyword" String="keyword-loop" context="Loop" beginRegion="def block"/>+				<keyword attribute="Keyword" String="keyword-block-then-value" context="MsgParamOrOp2" beginRegion="def block"/>+				<keyword attribute="Keyword" String="keyword-begin-end-cond" context="Cond" endRegion="def block" beginRegion="def block"/>+				<keyword attribute="Keyword" String="keyword-then-stmt"/>+				<keyword attribute="Keyword" String="keyword-then-value" context="MsgParamOrOp2"/>+				<keyword attribute="Keyword" String="keyword-block-cond" context="Cond" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="end" context="MsgParamOrOp2" endRegion="def block"/>+				<WordDetect attribute="Keyword" String="class" context="Op1ThenExpr" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="def" context="DefFn" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="when" context="Cond"/>+				<WordDetect attribute="Keyword" String="ensure" endRegion="def block" beginRegion="def block"/>+				<WordDetect attribute="Definition" String="alias" context="Alias"/>+				<WordDetect attribute="Definition" String="undef" context="Alias"/>++				<keyword attribute="Attribute Definition" String="attribute-definitions"  context="Op2ThenExpr"/>+				<keyword attribute="Access Control" String="access-control" context="Op2ThenExpr"/>+				<keyword attribute="Definition" String="definitions" context="Expr"/>+				<keyword attribute="Pseudo variable" String="pseudo-variables" context="Op1ThenExpr"/>+				<keyword attribute="Kernel methods" String="kernel-methods" context="Op2ThenExpr"/>+				<keyword attribute="Module mixin methods" String="mixin-methods" context="Op2ThenExpr"/>++				<!-- Generally a module or class name like "File", "MyModule_1", .. -->+				<RegExpr attribute="Constant" String="&constant;" context="MsgParamOrOp2"/>+				<RegExpr attribute="Global Constant" String="&global_constant;" context="MsgParamOrOp2"/>++				<!-- __END__ token on own line. -->+				<RegExpr attribute="Keyword" String="^__END__$" context="DATA" column="0"/>++				<DetectIdentifier attribute="Normal Text" context="SuffixFunctionMsgParamOrOp2"/>++				<!-- Check for =begin before assignment operator. -->+				<WordDetect attribute="Blockcomment" String="=begin" context="Embedded documentation" beginRegion="comment block" column="0"/>++				<!-- ruby ignores newline after \ -->+				<LineContinue attribute="Normal Text"/>+			</context>++			<context name="SuffixFunctionMsgParamOrOp2" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!MsgParamOrOp2">+				<AnyChar attribute="Normal Text" String="!?" context="#pop!MsgParamOrOp2"/>+			</context>+++			<!-- until 'do' or end of line -->+			<context name="Loop" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="LoopExpr">+				<DetectSpaces attribute="Normal Text"/>+				<DetectChar attribute="Operator" char="{" context="LoopFindBrace" beginRegion="brace"/>+				<DetectChar attribute="Operator" char="}" context="#pop" lookAhead="1"/>+				<WordDetect attribute="Keyword" String="do" context="#pop"/>+				<LineContinue attribute="Normal Text"/>+			</context>+			<context name="LoopFindBrace" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="LoopExpr">+				<DetectSpaces attribute="Normal Text"/>+				<DetectChar attribute="Operator" char="{" context="LoopFindBrace" beginRegion="brace"/>+				<DetectChar attribute="Operator" char="}" context="#pop!Op1ThenLoopExpr" endRegion="brace"/>+				<WordDetect attribute="Keyword" String="do" context="#pop" lookAhead="1"/>+				<LineContinue attribute="Normal Text"/>+			</context>+			<context name="LoopExpr" attribute="Normal Text" lineEndContext="#pop">+				<WordDetect attribute="Keyword" String="do" context="#pop" lookAhead="1"/>+				<IncludeRules context="Expr"/>+			</context>++			<!-- until 'then' or end of line -->+			<context name="Cond" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="CondExpr">+				<DetectSpaces attribute="Normal Text"/>+				<DetectChar attribute="Operator" char="{" context="CondFindBrace" beginRegion="brace"/>+				<DetectChar attribute="Operator" char="}" context="#pop" lookAhead="1"/>+				<WordDetect attribute="Keyword" String="then" context="#pop"/>+				<LineContinue attribute="Normal Text"/>+			</context>+			<context name="CondFindBrace" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="CondExpr">+				<DetectSpaces attribute="Normal Text"/>+				<DetectChar attribute="Operator" char="{" context="CondFindBrace" beginRegion="brace"/>+				<DetectChar attribute="Operator" char="}" context="#pop!Op1ThenCondExpr" endRegion="brace"/>+				<WordDetect attribute="Keyword" String="then" context="#pop" lookAhead="1"/>+				<LineContinue attribute="Normal Text"/>+			</context>+			<context name="CondExpr" attribute="Normal Text" lineEndContext="#pop">+				<WordDetect attribute="Keyword" String="then" context="#pop" lookAhead="1"/>+				<IncludeRules context="Expr"/>+			</context>++			<!-- after function call+				Assume that+						foo /a is a regex but not foo /=a+						foo %+ is a percent literal+						foo <<a is a heredoc+				(This is not true when foo is a variable...)+			-->+			<context name="MsgParamOrOp2" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!Expr">+				<DetectSpaces attribute="Normal Text"/>+				<RegExpr attribute="Operator" String="&op2;" context="#pop!Expr"/>+				<DetectChar attribute="Member" char="." context="MemberAccessCall"/>+				<StringDetect attribute="Operator" String="::" context="MemberAccessCall"/>+				<LineContinue attribute="Normal Text"/>+			</context>++			<context name="MsgFnName" attribute="Normal Text" lineEndContext="#pop#pop#pop" fallthroughContext="#pop!FnParent">+				<DetectSpaces attribute="Normal Text"/>+				<DetectChar attribute="Member" char="." context="MemberAccess"/>+				<StringDetect attribute="Operator" String="::" context="MemberAccess"/>+				<LineContinue attribute="Normal Text"/>+			</context>++			<context name="Expr" attribute="Normal Text" lineEndContext="#pop">+				<DetectSpaces attribute="Normal Text"/>++				<StringDetect attribute="Operator" String=".." context="Dot2Op"/>+				<DetectChar attribute="Member" char="." context="MemberAccess"/>++				<DetectChar attribute="Operator" char="=" context="#pop"/>++				<!-- pop to parent for interpolation -->+				<AnyChar String="{}" context="#pop" lookAhead="1"/>++				<AnyChar attribute="Normal Text" String=";(" context="#pop"/>+				<DetectChar attribute="Normal Text" char=","/>+				<DetectChar attribute="Normal Text" char=")" context="Op1"/>++				<DetectChar attribute="Comment" char="#" context="#pop!General Comment"/>++				<DetectChar char="@" context="AtVar" lookAhead="1"/>+				<DetectChar char="$" context="Var" lookAhead="1"/>++				<DetectChar attribute="Delimiter" char="]" context="Op1"/>++				<HlCChar attribute="Char" context="Op1"/>+				<DetectChar attribute="String" char='"' context="DQuote"/>+				<DetectChar attribute="Raw String" char="'" context="SQuote"/>+				<DetectChar attribute="Command" char="`" context="Command String"/>++				<DetectChar attribute="Regular Expression" char="/" context="RegEx"/>+				<!-- Check for "ASCII code operator". e.g.: ?a -->+				<DetectChar char="?" context="MaybeCharLiteral" lookAhead="1"/>++				<AnyChar context="Number" String="0123456789" lookAhead="1"/>++				<RegExpr attribute="Normal Text" String="&ident_not_kw;" context="Op2"/>++				<RegExpr attribute="Symbol" String="&symbol;" context="#pop!MsgParamOrOp2"/>++				<DetectChar attribute="Delimiter" char="[" context="#pop!MsgParamOrOp2"/>++				<StringDetect attribute="Operator" String="::" context="MemberAccess"/>++				<LineContinue attribute="Normal Text"/>++				<keyword attribute="Attribute Definition" String="attribute-definitions" context="Op2"/>+				<keyword attribute="Access Control" String="access-control" context="Op2"/>+				<keyword attribute="Pseudo variable" String="pseudo-variables" context="Op1"/>+				<keyword attribute="Kernel methods" String="kernel-methods" context="Op2"/>+				<keyword attribute="Module mixin methods" String="mixin-methods" context="Op2"/>++				<keyword attribute="Keyword" String="keyword-modifiers"/>++				<keyword attribute="Keyword" String="keyword-block" beginRegion="def block" context="#pop"/>+				<keyword attribute="Keyword" String="keyword-loop" context="#pop!Loop" beginRegion="def block"/>+				<keyword attribute="Keyword" String="keyword-block-then-value" context="#pop!MsgParamOrOp2" beginRegion="def block"/>+				<keyword attribute="Keyword" String="keyword-begin-end-cond" context="#pop!Cond" endRegion="def block" beginRegion="def block"/>+				<keyword attribute="Keyword" String="keyword-then-stmt" context="#pop"/>+				<keyword attribute="Keyword" String="keyword-then-value" context="#pop!MsgParamOrOp2"/>+				<WordDetect attribute="Keyword" String="end" context="#pop!MsgParamOrOp2" endRegion="def block"/>+				<WordDetect attribute="Keyword" String="class" context="Op1" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="def" context="#pop!DefFn" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="when" context="#pop!Cond"/>+				<WordDetect attribute="Keyword" String="ensure" context="#pop" endRegion="def block" beginRegion="def block"/>+				<WordDetect attribute="Definition" String="alias" context="Alias"/>+				<WordDetect attribute="Definition" String="undef" context="Alias"/>++				<keyword attribute="Definition" String="definitions"/>++				<!-- Generally a module or class name like "File", "MyModule_1", .. -->+				<RegExpr attribute="Constant" String="&constant;" context="Op1"/>+				<RegExpr attribute="Global Constant" String="&global_constant;" context="Op1"/>++				<RegExpr attribute="Symbol" String=":((@@?|\$)&ident;|&ident;([?]|!(?!=)|=(?![=>~]))?|&sym_op;|(?=['&quot;])|&global_var;)" context="Op1"/>++				<!-- recognize the beginning of a general delimited input format -->+				<!-- this moves to the next context to separate out the exact nature of the GDL input -->+				<RegExpr attribute="GDL input" context="find_gdl_input" String="%(?=&percent_lit;)" beginRegion="GdlInput"/>++				<!-- recognize the beginning of a HEREDOC -->+				<RegExpr attribute="Operator" context="Heredoc" String="&lt;&lt;(?=[-~]?(\w+|'\w+'|&quot;\w+&quot;|`\w+`))" beginRegion="HereDocument"/>++				<!-- should not happen in valid syntax -->+				<RegExpr attribute="Operator" String="([/%?:]|&lt;&lt;?)&safe_op;*|&safe_op;+"/>+				<DetectIdentifier attribute="Normal Text" context="SuffixFunction"/>+			</context>++			<!-- alias / ++			           ~ never regex+			     same for undef+			-->+			<context name="Alias" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">+				<DetectSpaces attribute="Normal Text"/>+				<AnyChar attribute="Operator" String="-+*~^|&amp;=&lt;>!%/"/>+				<DetectChar char="$" context="Var" lookAhead="1"/>+				<DetectChar attribute="String" char='"' context="AliasDQuote"/>+				<DetectChar attribute="Raw String" char="'" context="AliasSQuote"/>+				<DetectChar attribute="Normal Text" char=","/>+				<LineContinue attribute="Normal Text"/>+				<RegExpr attribute="Symbol" String=":(&ident;[=?!]?|&sym_op;)"/>+				<RegExpr attribute="Normal Text" String="\b(?!(&no_param;)([^?!\w]|$))&ident;"/>+			</context>+			<context name="AliasDQuote" attribute="String">+				<DetectChar char='"' attribute="String" context="AliasCheckSym"/>+				<IncludeRules context="DQuoteSpecial"/>+			</context>+			<context name="AliasSQuote" attribute="Raw String">+				<Detect2Chars attribute="String" char="\" char1="\"/>+				<Detect2Chars attribute="String" char="\" char1="'"/>+				<DetectChar char="'" attribute="Raw String" context="AliasCheckSym"/>+			</context>+			<context name="AliasCheckSym" attribute="Raw String" lineEndContext="#pop#pop#pop" fallthroughContext="#pop#pop">+				<DetectChar char=":" attribute="Symbol" context="#pop#pop"/>+			</context>++			<context name="Dot2Op" attribute="Operator" lineEndContext="#pop#pop" fallthroughContext="#pop">+				<!-- triple dot -->+				<DetectChar attribute="Operator" char="." context="#pop"/>+			</context>++			<context name="SuffixFunction" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!Op2">+				<AnyChar attribute="Normal Text" String="!?" context="#pop!Op2"/>+			</context>++			<!-- A slash is always a division operator, even if preceeded by whitespace -->+			<context name="Op1" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">+				<DetectSpaces attribute="Normal Text"/>+				<DetectChar attribute="Operator" char="=" context="#pop#pop"/>+				<RegExpr attribute="Operator" String="&op1;" context="#pop"/>+				<LineContinue attribute="Normal Text"/>+			</context>++			<context name="Op1ThenExpr" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!Expr">+				<DetectSpaces attribute="Normal Text"/>+				<DetectChar attribute="Operator" char="=" context="#pop"/>+				<RegExpr attribute="Operator" String="&op1;" context="#pop!Expr"/>+				<LineContinue attribute="Normal Text"/>+			</context>++			<context name="Op1ThenLoopExpr" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!LoopExpr">+				<DetectSpaces attribute="Normal Text"/>+				<DetectChar attribute="Operator" char="=" context="#pop"/>+				<RegExpr attribute="Operator" String="&op1;" context="#pop!LoopExpr"/>+				<LineContinue attribute="Normal Text"/>+			</context>++			<context name="Op1ThenCondExpr" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!CondExpr">+				<DetectSpaces attribute="Normal Text"/>+				<DetectChar attribute="Operator" char="=" context="#pop"/>+				<RegExpr attribute="Operator" String="&op1;" context="#pop!CondExpr"/>+				<LineContinue attribute="Normal Text"/>+			</context>++			<!-- A slash is division operator if it's the first character, or if preceeded and followed by whitespace -->+			<context name="Op2" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">+				<DetectSpaces attribute="Normal Text"/>+				<DetectChar attribute="Operator" char="=" context="#pop#pop"/>+				<RegExpr attribute="Operator" String="&op2;" context="#pop"/>+				<LineContinue attribute="Normal Text"/>+			</context>++			<context name="Op2ThenExpr" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!Expr">+				<DetectSpaces attribute="Normal Text"/>+				<DetectChar attribute="Operator" char="=" context="#pop"/>+				<RegExpr attribute="Operator" String="&op2;" context="#pop!Expr"/>+				<LineContinue attribute="Normal Text"/>+			</context>++			<context name="Var" attribute="Normal Text" lineEndContext="#pop#pop">+				<!-- (global) vars starting with $ -->+				<RegExpr attribute="Global Variable" String="\$((?!(stdin|stdout|stderr|_|LOAD_PATH|LOADED_FEATURES|FILENAME|DEBUG|VERBOSE)\b)[[:alpha:]]\w*|[0-9]+|-(?![ailpFIvWwdx])\w)" context="#pop!Op1"/>+				<!-- special-character globals and other predefined variables -->+				<RegExpr attribute="Default globals" String="&global_var;" context="#pop!Op1"/>+				<DetectChar attribute="Error" char="$" context="#pop!Op1"/>+			</context>++			<context name="AtVar" attribute="Normal Text" lineEndContext="#pop#pop">+				<RegExpr attribute="Instance Variable" String="@&ident;" context="#pop!Op1"/>+				<RegExpr attribute="Class Variable" String="@@&ident;" context="#pop!Op1"/>+				<DetectChar attribute="Error" char="@"/>+			</context>++			<!-- def foo() block-statement+			         ~~~ any ident (including keyword)++			     def Abc::foo() block-statement+			         ~~~  ~~~ ident (no keyword)+			-->+			<context name="DefFn" attribute="Normal Text" fallthroughContext="FnName">+				<DetectSpaces attribute="Normal Text"/>+				<LineContinue attribute="Normal Text"/>+				<DetectChar attribute="Comment" char="#" context="General Comment"/>+			</context>+			<context name="FnName" attribute="Normal Text" fallthroughContext="FnParent">+				<RegExpr attribute="Normal Text" String="&ident_not_kw;" context="MsgFnName"/>++				<keyword attribute="Attribute Definition" String="attribute-definitions" context="FnParent" weakDeliminator=":"/>+				<keyword attribute="Access Control" String="access-control" context="FnParent" weakDeliminator=":"/>+				<keyword attribute="Definition" String="definitions" context="FnParent" weakDeliminator=":"/>+				<keyword attribute="Pseudo variable" String="pseudo-variables" context="FnParent" weakDeliminator=":"/>+				<keyword attribute="Kernel methods" String="kernel-methods" context="FnParent" weakDeliminator=":"/>+				<keyword attribute="Module mixin methods" String="mixin-methods" context="FnParent" weakDeliminator=":"/>+				<keyword attribute="Keyword" String="keyword" context="FnParent" weakDeliminator=":"/>++				<RegExpr attribute="Operator" String="[-+~]@?|![~@]?|[/%^]|\*\*?|\|\||&amp;&amp;|&lt;(=>?)?|>=?|===?|\*\*?" context="FnParent"/>+				<RegExpr attribute="Constant" String="&constant;" context="MsgFnName"/>+				<RegExpr attribute="Global Constant" String="&global_constant;" context="MsgFnName"/>++				<StringDetect attribute="Symbol" String="[]=" context="FnParent"/>+				<StringDetect attribute="Symbol" String="[]" context="FnParent"/>+				<DetectChar attribute="Comment" char="#" context="General Comment"/>+			</context>+			<context name="FnParent" attribute="Normal Text" fallthroughContext="#pop#pop#pop">+				<DetectChar attribute="Normal Text" char="(" context="DefFnParams"/>+				<DetectSpaces attribute="Normal Text"/>+				<LineContinue attribute="Normal Text"/>+				<DetectChar attribute="Comment" char="#" context="General Comment"/>+			</context>+			<context name="DefFnParams" attribute="Normal Text" fallthroughContext="#pop#pop#pop#pop">+				<DetectChar attribute="Normal Text" char=")" context="#pop#pop#pop#pop"/>+				<DetectChar attribute="Comment" char="#" context="General Comment"/>+				<RegExpr attribute="Normal Text" String="([\s,]+|\b(?!(&no_param;)\b|[[:upper:]])&ident;(?=$|[^?!]))++"/>+				<RegExpr attribute="Constant" String="&constant;"/>+				<RegExpr attribute="Global Constant" String="&global_constant;"/>+				<keyword attribute="Attribute Definition" String="attribute-definitions"/>+				<keyword attribute="Access Control" String="access-control"/>+				<keyword attribute="Kernel methods" String="kernel-methods"/>+				<keyword attribute="Module mixin methods" String="mixin-methods"/>+			</context>+++			<!-- Numeric values. Note that we have to allow underscores between two digits. -->+			<context name="Number" attribute="Normal Text" lineEndContext="#pop#pop" fallthroughContext="NumberError">+				<RegExpr attribute="Dec" String="\b(0[dD]&dec;|(0(\b|(?=[ri]))|[1-9](_?[0-9]++)*+)(?![eE]|[.][0-9]))" context="NumberSuffix"/>+				<RegExpr attribute="Float" String="\b([1-9](_?[0-9]++)*+|0)(\.&dec;([eE][-+]?&dec;)?|[eE][-+]?&dec;)" context="NumberSuffix"/>+				<RegExpr attribute="Hex" String="\b0[xX][0-9a-fA-F](_?[0-9a-fA-F]++)*+" context="NumberSuffix"/>+				<RegExpr attribute="Bin" String="\b0[bB][01](_?[01]++)*+" context="NumberSuffix"/>+				<RegExpr attribute="Octal" String="\b0[oO]?[0-7](_?[0-7]++)*+" context="NumberSuffix"/>+				<DetectChar char="0" attribute="Dec" context="NumberError"/>+			</context>++			<context name="NumberSuffix" attribute="Number Suffix" lineEndContext="#pop#pop" fallthroughContext="#pop!NumberError">+				<StringDetect attribute="Number Suffix" String="ri" context="#pop!NumberError"/>+				<AnyChar attribute="Number Suffix" String="ri" context="#pop!NumberError"/>+			</context>++			<context name="NumberError" attribute="Error" lineEndContext="#pop#pop#pop" fallthroughContext="#pop#pop!Op1">+				<DetectIdentifier/>+				<AnyChar String="0123456789"/>+			</context>++			<context name="Find closing brace" attribute="Normal Text" fallthroughContext="Expr">+				<DetectChar attribute="Operator" char="}" context="#pop!Op1ThenExpr" endRegion="brace"/>+				<IncludeRules context="Ruby"/>+			</context>++			<!-- "..." -->+			<context name="DQuote" attribute="String">+				<DetectChar char='"' attribute="String" context="CheckSym"/>+				<IncludeRules context="DQuoteSpecial"/>+			</context>++			<!-- "...": -->+			<context name="CheckSym" attribute="Raw String" lineEndContext="#pop#pop!Op1" fallthroughContext="#pop#pop!Op1">+				<DetectChar char=":" attribute="Symbol" context="#pop#pop#pop"/>+			</context>++			<!-- \ in "..." -->+			<context name="DQuoteSpecial" attribute="String">+				<DetectChar char="\" context="DQuoteEscape" lookAhead="1"/>+				<DetectChar char="#" context="DQuoteSubstitution" lookAhead="1"/>+			</context>+			<context name="DQuoteEscape" attribute="String">+				<RegExpr attribute="String Char" String="&escape;" context="#pop"/>+				<RegExpr attribute="Error" String="\\(&partial_escape;|)" context="#pop"/>+			</context>+			<context name="DQuoteSubstitution" attribute="String">+				<StringDetect attribute="Substitution" String="#{" context="#pop!Subst"/>+				<RegExpr attribute="Substitution" String="#@@?\w+|#&global_var;" context="#pop"/>+				<DetectChar char="#" context="#pop"/>+			</context>++			<!-- '...' -->+			<context name="SQuote" attribute="Raw String">+				<Detect2Chars attribute="String" char="\" char1="\"/>+				<Detect2Chars attribute="String" char="\" char1="'"/>+				<DetectChar char="'" attribute="Raw String" context="CheckSym"/>+			</context>++			<!-- `...` -->+			<context name="Command String" attribute="Command">+				<DetectChar char="`" attribute="Command" context="#pop!Op1"/>+				<Detect2Chars attribute="String" char="\" char1="\"/>+				<Detect2Chars attribute="String" char="\" char1="`"/>+				<DetectChar char="#" context="DQuoteSubstitution" lookAhead="1"/>+			</context>++			<!-- ?x -->+			<context name="MaybeCharLiteral" attribute="String" lineEndContext="#pop" fallthroughContext="#pop!Op1">+				<RegExpr attribute="Operator" String="\?(?=\s|$)" context="#pop"/>+				<DetectChar attribute="Char Literal" char="?" context="CharLiteral"/>+			</context>+			<context name="CharLiteral" attribute="String">+				<RegExpr attribute="Char" String="[^\\\s]" context="#pop#pop!Op1"/>+				<RegExpr attribute="String Char" String="&escape;" context="#pop#pop!Op1"/>+				<RegExpr attribute="Error" String="\\(&partial_escape;|)" context="#pop#pop!Op1"/>+			</context>++			<context name="Embedded documentation" attribute="Blockcomment">+				<DetectSpaces/>+				<IncludeRules context="##Comments"/>+				<DetectIdentifier/>+				<WordDetect attribute="Comment" String="=end" context="Embedded documentation End" endRegion="comment block" column="0"/>+			</context>+			<context name="Embedded documentation End" attribute="Comment" lineEndContext="#pop#pop">+			</context>++			<context name="RegEx" attribute="Regular Expression">+				<DetectChar attribute="Regular Expression" context="RegExMode" char="/"/>+				<IncludeRules context="RegExSpecial"/>+			</context>+			<!-- as DQuoteSpecial, but with \. and \p{...} -->+			<context name="RegExSpecial" attribute="String Char">+				<DetectChar char="#" context="DQuoteSubstitution" lookAhead="1"/>+				<DetectChar char="\" context="RegExEscape" lookAhead="1"/>+			</context>+			<context name="RegExEscape" attribute="String">+				<RegExpr attribute="String Char" String="\\([^0-7xucCMp]|&special_escape;|p\{[-[:alpha:]]*\}|$)" context="#pop"/>+				<RegExpr attribute="Error" String="\\(&partial_escape;|p\{?|)" context="#pop"/>+			</context>++			<context name="RegExMode" attribute="String" lineEndContext="#pop#pop" fallthroughContext="#pop#pop!Op1">+				<AnyChar attribute="Regular Expression" String="imxonues"/>+			</context>++			<!-- Substitutions can be nested -->+			<context name="Subst" attribute="Normal Text" fallthroughContext="Expr">+				<DetectChar attribute="Operator" char="{" context="Find closing brace" beginRegion="brace"/>+				<DetectChar attribute="Substitution" char="}" context="#pop"/>+				<!-- Highlight substitution as code. -->+				<IncludeRules context="Ruby"/>+			</context>++			<!-- This handles access of nested module classes and class methods -->+			<context name="MemberAccess" attribute="Member" fallthroughContext="#pop!Op1">+				<DetectSpaces attribute="Normal Text"/>+				<!-- marks a message (being sent, not defined) -->+				<RegExpr attribute="Message" String="&msg;" context="#pop!Op1"/>+				<RegExpr attribute="Constant" String="&constant;" context="#pop!Op1"/>+				<RegExpr attribute="Constant Value" String="&global_constant;" context="#pop!Op1"/>+				<RegExpr attribute="Operator" String="&sym_op;" context="#pop"/>+			</context>++			<context name="MemberAccessCall" attribute="Member" fallthroughContext="#pop">+				<DetectSpaces attribute="Normal Text"/>+				<!-- marks a message (being sent, not defined) -->+				<RegExpr attribute="Message" String="&msg;" context="#pop"/>+				<RegExpr attribute="Constant" String="&constant;" context="#pop"/>+				<RegExpr attribute="Constant Value" String="&global_constant;" context="#pop"/>+				<RegExpr attribute="Operator" String="&sym_op;" context="#pop"/>+			</context>++			<context name="General Comment" attribute="Comment" lineEndContext="#pop">+				<DetectSpaces/>+				<IncludeRules context="##Comments"/>+				<DetectIdentifier/>+			</context>++			<!-- HEREDOC support+				The contexts below support both normal and indented heredocs+			 -->+			<!-- here we markup the heredoc markers -->+			<context name="Heredoc" attribute="Normal Text">+				<AnyChar attribute="Operator" String="-~" context="#pop!IndentedHeredoc"/>+				<RegExpr attribute="Keyword" context="apostrophed_normal_heredoc" String="'(\w+)'"/>+				<RegExpr attribute="Keyword" context="normal_heredoc" String="(?|(\w+)|&quot;(\w+)&quot;|`(\w+)`)"/>+			</context>+			<context name="IndentedHeredoc" attribute="Normal Text">+				<RegExpr attribute="Keyword" context="apostrophed_indented_heredoc" String="'(\w+)'"/>+				<RegExpr attribute="Keyword" context="indented_heredoc" String="(?|(\w+)|&quot;(\w+)&quot;|`(\w+)`)"/>+			</context>+			<!-- these are the real heredoc contexts -->+			<context name="indented_heredoc" attribute="Here Document">+				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true"/>+				<IncludeRules context="DQuoteSpecial"/>+			</context>+			<context name="apostrophed_indented_heredoc" attribute="Here Document">+				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true"/>+			</context>++			<context name="normal_heredoc" attribute="Here Document">+				<RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument" column="0"/>+				<IncludeRules context="DQuoteSpecial"/>+			</context>+			<context name="apostrophed_normal_heredoc" attribute="Here Document">+				<RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument" column="0"/>+			</context>++			<!-- General delimited input support+				The contexts below handle the various gdl formats+			 -->+			<context name="find_gdl_input" attribute="Normal Text" lineEndContext="#pop">+				<!-- handle double-quoted strings -->+				<DetectChar attribute="GDL input" context="%Q(" char="("/>+				<DetectChar attribute="GDL input" context="%Q{" char="{"/>+				<DetectChar attribute="GDL input" context="%Q[" char="["/>+				<DetectChar attribute="GDL input" context="%Q&lt;" char="&lt;"/>+				<StringDetect attribute="GDL input" context="%Q(" String="Q("/>+				<StringDetect attribute="GDL input" context="%Q{" String="Q{"/>+				<StringDetect attribute="GDL input" context="%Q[" String="Q["/>+				<StringDetect attribute="GDL input" context="%Q&lt;" String="Q&lt;"/>++				<!-- handle token arrays -->+				<StringDetect attribute="GDL input" context="%Q(" String="W("/>+				<StringDetect attribute="GDL input" context="%Q{" String="W{"/>+				<StringDetect attribute="GDL input" context="%Q[" String="W["/>+				<StringDetect attribute="GDL input" context="%Q&lt;" String="W&lt;"/>++				<!-- handle token arrays -->+				<StringDetect attribute="GDL input" context="%Q(" String="I("/>+				<StringDetect attribute="GDL input" context="%Q{" String="I{"/>+				<StringDetect attribute="GDL input" context="%Q[" String="I["/>+				<StringDetect attribute="GDL input" context="%Q&lt;" String="I&lt;"/>++				<!-- then we handle the 'any char' format -->+				<RegExpr attribute="GDL input" context="%Q_" String="[QWI]?([^[:alnum:]])"/>++				<!-- handle token arrays -->+				<StringDetect attribute="GDL input" context="%w(" String="w("/>+				<StringDetect attribute="GDL input" context="%w{" String="w{"/>+				<StringDetect attribute="GDL input" context="%w[" String="w["/>+				<StringDetect attribute="GDL input" context="%w&lt;" String="w&lt;"/>++				<!-- handle token arrays -->+				<StringDetect attribute="GDL input" context="%w(" String="i("/>+				<StringDetect attribute="GDL input" context="%w{" String="i{"/>+				<StringDetect attribute="GDL input" context="%w[" String="i["/>+				<StringDetect attribute="GDL input" context="%w&lt;" String="i&lt;"/>++				<!-- then we handle the 'any char' format -->+				<RegExpr attribute="GDL input" context="%w_" String="[wi]([^[:alnum:]])"/>++				<!-- handle apostrophed strings -->+				<StringDetect attribute="GDL input" context="%q(" String="q("/>+				<StringDetect attribute="GDL input" context="%q{" String="q{"/>+				<StringDetect attribute="GDL input" context="%q[" String="q["/>+				<StringDetect attribute="GDL input" context="%q&lt;" String="q&lt;"/>+				<!-- then we handle the 'any char' format -->+				<RegExpr attribute="GDL input" context="%q_" String="q([^[:alnum:]])"/>++				<!-- handle token arrays -->+				<StringDetect attribute="GDL input" context="%s(" String="s("/>+				<StringDetect attribute="GDL input" context="%s{" String="s{"/>+				<StringDetect attribute="GDL input" context="%s[" String="s["/>+				<StringDetect attribute="GDL input" context="%s&lt;" String="s&lt;"/>+				<!-- then ie handle the 'any char' format -->+				<RegExpr attribute="GDL input" context="%s_" String="s([^[:alnum:]])"/>++				<!-- handle regular expressions -->+				<StringDetect attribute="GDL input" context="%r(" String="r("/>+				<StringDetect attribute="GDL input" context="%r{" String="r{"/>+				<StringDetect attribute="GDL input" context="%r[" String="r["/>+				<StringDetect attribute="GDL input" context="%r&lt;" String="r&lt;"/>+				<!-- then we handle the 'any char' format -->+				<RegExpr attribute="GDL input" context="%r_" String="r([^[:alnum:]])"/>++				<!-- handle shell commands -->+				<StringDetect attribute="GDL input" context="%x(" String="x("/>+				<StringDetect attribute="GDL input" context="%x{" String="x{"/>+				<StringDetect attribute="GDL input" context="%x[" String="x["/>+				<StringDetect attribute="GDL input" context="%x&lt;" String="x&lt;"/>+				<!-- then we handle the 'any char' format -->+				<RegExpr attribute="GDL input" context="%x_" String="x([^[:alnum:]])"/>+			</context>+++			<!-- double-quoted string specific contexts follow -->++			<context name="%Q(" attribute="String">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char=")" endRegion="GdlInput" />+				<IncludeRules context="%Q(_rule"/>+			</context>+			<context name="%Q(_nested" attribute="String">+				<DetectChar attribute="String" context="#pop" char=")"/>+				<IncludeRules context="%Q(_rule"/>+			</context>+			<context name="%Q(_rule" attribute="String">+				<DetectChar attribute="String" context="%Q(_nested" char="("/>+				<IncludeRules context="DQuoteSpecial"/>+			</context>++			<!-- note that here substitution should win over nesting -->+			<context name="%Q{" attribute="String">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="}" endRegion="GdlInput" />+				<IncludeRules context="%Q{_rule"/>+			</context>+			<context name="%Q{_nested" attribute="String">+				<DetectChar attribute="String" context="#pop" char="}"/>+				<IncludeRules context="%Q{_rule"/>+			</context>+			<context name="%Q{_rule" attribute="String">+				<DetectChar attribute="String" context="%Q{_nested" char="{"/>+				<IncludeRules context="DQuoteSpecial"/>+			</context>++			<context name="%Q[" attribute="String">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="]" endRegion="GdlInput" />+				<IncludeRules context="%Q[_rule"/>+			</context>+			<context name="%Q[_nested" attribute="String">+				<DetectChar attribute="String" context="#pop" char="]"/>+				<IncludeRules context="%Q[_rule"/>+			</context>+			<context name="%Q[_rule" attribute="String">+				<DetectChar attribute="String" context="%Q[_nested" char="["/>+				<IncludeRules context="DQuoteSpecial"/>+			</context>++			<context name="%Q&lt;" attribute="String">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char=">" endRegion="GdlInput" />+				<IncludeRules context="%Q&lt;_rule"/>+			</context>+			<context name="%Q&lt;_nested" attribute="String">+				<DetectChar attribute="String" context="#pop" char=">"/>+				<IncludeRules context="%Q&lt;_rule"/>+			</context>+			<context name="%Q&lt;_rule" attribute="String">+				<DetectChar attribute="String" context="%Q&lt;_nested" char="&lt;"/>+				<IncludeRules context="DQuoteSpecial"/>+			</context>++			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the+				delimiter character+			 -->+			<context name="%Q_" attribute="String">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="1" dynamic="true" endRegion="GdlInput" />+				<IncludeRules context="DQuoteSpecial"/>+			</context>+++			<!-- token array specific contexts -->++			<context name="%w(" attribute="Raw String">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char=")" endRegion="GdlInput"/>+				<IncludeRules context="%w(_rule"/>+			</context>+			<context name="%w(_nested" attribute="Raw String">+				<DetectChar attribute="Raw String" context="#pop" char=")"/>+				<IncludeRules context="%w(_rule"/>+			</context>+			<context name="%w(_rule" attribute="Raw String">+				<DetectChar attribute="Raw String" context="%w(_nested" char="("/>+				<Detect2Chars attribute="String Char" char="\" char1=" "/>+				<Detect2Chars attribute="String Char" char="\" char1="\"/>+				<Detect2Chars attribute="String Char" char="\" char1=")"/>+				<Detect2Chars attribute="String Char" char="\" char1="("/>+			</context>++			<context name="%w{" attribute="Raw String">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="}" endRegion="GdlInput"/>+				<IncludeRules context="%w{_rule"/>+			</context>+			<context name="%w{_nested" attribute="Raw String">+				<DetectChar attribute="Raw String" context="#pop" char="}"/>+				<IncludeRules context="%w{_rule"/>+			</context>+			<context name="%w{_rule" attribute="Raw String">+				<DetectChar attribute="Raw String" context="%w{_nested" char="{"/>+				<Detect2Chars attribute="String Char" char="\" char1=" "/>+				<Detect2Chars attribute="String Char" char="\" char1="\"/>+				<Detect2Chars attribute="String Char" char="\" char1="}"/>+				<Detect2Chars attribute="String Char" char="\" char1="{"/>+			</context>++			<context name="%w[" attribute="Raw String">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="]" endRegion="GdlInput"/>+				<IncludeRules context="%w[_rule"/>+			</context>+			<context name="%w[_nested" attribute="Raw String">+				<DetectChar attribute="Raw String" context="#pop" char="]"/>+				<IncludeRules context="%w[_rule"/>+			</context>+			<context name="%w[_rule" attribute="Raw String">+				<DetectChar attribute="Raw String" context="%w[_nested" char="["/>+				<Detect2Chars attribute="String Char" char="\" char1=" "/>+				<Detect2Chars attribute="String Char" char="\" char1="\"/>+				<Detect2Chars attribute="String Char" char="\" char1="]"/>+				<Detect2Chars attribute="String Char" char="\" char1="["/>+			</context>++			<context name="%w&lt;" attribute="Raw String">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char=">" endRegion="GdlInput"/>+				<IncludeRules context="%w&lt;_rule"/>+			</context>+			<context name="%w&lt;_nested" attribute="Raw String">+				<DetectChar attribute="Raw String" context="#pop" char=">"/>+				<IncludeRules context="%w&lt;_rule"/>+			</context>+			<context name="%w&lt;_rule" attribute="Raw String">+				<DetectChar attribute="Raw String" context="%w&lt;_nested" char="&lt;"/>+				<Detect2Chars attribute="String Char" char="\" char1=" "/>+				<Detect2Chars attribute="String Char" char="\" char1="\"/>+				<Detect2Chars attribute="String Char" char="\" char1=">"/>+				<Detect2Chars attribute="String Char" char="\" char1="&lt;"/>+			</context>++			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the+				delimiter character+			 -->+			<context name="%w_" attribute="Raw String">+				<Detect2Chars attribute="String Char" char="\" char1=" "/>+				<IncludeRules context="%q_"/>+			</context>+++			<!-- apostrophed string specific contexts -->++			<context name="%q(" attribute="Raw String">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char=")" endRegion="GdlInput"/>+				<IncludeRules context="%q(_rule"/>+			</context>+			<context name="%q(_nested" attribute="Raw String">+				<DetectChar attribute="Raw String" context="#pop" char=")"/>+				<IncludeRules context="%q(_rule"/>+			</context>+			<context name="%q(_rule" attribute="Raw String">+				<DetectChar attribute="Raw String" context="%q(_nested" char="("/>+				<Detect2Chars attribute="String Char" char="\" char1="\"/>+				<Detect2Chars attribute="String Char" char="\" char1=")"/>+				<Detect2Chars attribute="String Char" char="\" char1="("/>+			</context>++			<context name="%q{" attribute="Raw String">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="}" endRegion="GdlInput"/>+				<IncludeRules context="%q{_rule"/>+			</context>+			<context name="%q{_nested" attribute="Raw String">+				<DetectChar attribute="Raw String" context="#pop" char="}"/>+				<IncludeRules context="%q{_rule"/>+			</context>+			<context name="%q{_rule" attribute="Raw String">+				<DetectChar attribute="Raw String" context="%q{_nested" char="{"/>+				<Detect2Chars attribute="String Char" char="\" char1="\"/>+				<Detect2Chars attribute="String Char" char="\" char1="}"/>+				<Detect2Chars attribute="String Char" char="\" char1="{"/>+			</context>++			<context name="%q[" attribute="Raw String">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="]" endRegion="GdlInput"/>+				<IncludeRules context="%q[_rule"/>+			</context>+			<context name="%q[_nested" attribute="Raw String">+				<DetectChar attribute="Raw String" context="#pop" char="]"/>+				<IncludeRules context="%q[_rule"/>+			</context>+			<context name="%q[_rule" attribute="Raw String">+				<DetectChar attribute="Raw String" context="%q[_nested" char="["/>+				<Detect2Chars attribute="String Char" char="\" char1="\"/>+				<Detect2Chars attribute="String Char" char="\" char1="]"/>+				<Detect2Chars attribute="String Char" char="\" char1="["/>+			</context>++			<context name="%q&lt;" attribute="Raw String">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char=">" endRegion="GdlInput"/>+				<IncludeRules context="%q&lt;_rule"/>+			</context>+			<context name="%q&lt;_nested" attribute="Raw String">+				<DetectChar attribute="Raw String" context="#pop" char=">"/>+				<IncludeRules context="%q&lt;_rule"/>+			</context>+			<context name="%q&lt;_rule" attribute="Raw String">+				<DetectChar attribute="Raw String" context="%q&lt;_nested" char="&lt;"/>+				<Detect2Chars attribute="String Char" char="\" char1="\"/>+				<Detect2Chars attribute="String Char" char="\" char1=">"/>+				<Detect2Chars attribute="String Char" char="\" char1="&lt;"/>+			</context>++			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the+				delimiter character+			 -->+			<context name="%q_" attribute="Raw String">+				<Detect2Chars attribute="Raw String" char="\" char1="\"/>+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="1" dynamic="true" endRegion="GdlInput" />+				<StringDetect attribute="String Char" String="\%1" dynamic="true"/>+			</context>+++			<!-- symbol string specific contexts -->++			<context name="%s(" attribute="Symbol">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char=")" endRegion="GdlInput"/>+				<IncludeRules context="%s(_rule"/>+			</context>+			<context name="%s(_nested" attribute="Symbol">+				<DetectChar attribute="Symbol" context="#pop" char=")"/>+				<IncludeRules context="%s(_rule"/>+			</context>+			<context name="%s(_rule" attribute="Symbol">+				<DetectChar attribute="Symbol" context="%s(_nested" char="("/>+				<Detect2Chars attribute="String Char" char="\" char1="\"/>+				<Detect2Chars attribute="String Char" char="\" char1=")"/>+				<Detect2Chars attribute="String Char" char="\" char1="("/>+			</context>++			<context name="%s{" attribute="Symbol">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="}" endRegion="GdlInput"/>+				<IncludeRules context="%s{_rule"/>+			</context>+			<context name="%s{_nested" attribute="Symbol">+				<DetectChar attribute="Symbol" context="#pop" char="}"/>+				<IncludeRules context="%s{_rule"/>+			</context>+			<context name="%s{_rule" attribute="Symbol">+				<DetectChar attribute="Symbol" context="%s{_nested" char="{"/>+				<Detect2Chars attribute="String Char" char="\" char1="\"/>+				<Detect2Chars attribute="String Char" char="\" char1="}"/>+				<Detect2Chars attribute="String Char" char="\" char1="{"/>+			</context>++			<context name="%s[" attribute="Symbol">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="]" endRegion="GdlInput"/>+				<IncludeRules context="%s[_rule"/>+			</context>+			<context name="%s[_nested" attribute="Symbol">+				<DetectChar attribute="Symbol" context="#pop" char="]"/>+				<IncludeRules context="%s[_rule"/>+			</context>+			<context name="%s[_rule" attribute="Symbol">+				<DetectChar attribute="Symbol" context="%s[_nested" char="["/>+				<Detect2Chars attribute="String Char" char="\" char1="\"/>+				<Detect2Chars attribute="String Char" char="\" char1="]"/>+				<Detect2Chars attribute="String Char" char="\" char1="["/>+			</context>++			<context name="%s&lt;" attribute="Symbol">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char=">" endRegion="GdlInput"/>+				<IncludeRules context="%s&lt;_rule"/>+			</context>+			<context name="%s&lt;_nested" attribute="Symbol">+				<DetectChar attribute="Symbol" context="#pop" char=">"/>+				<IncludeRules context="%s&lt;_rule"/>+			</context>+			<context name="%s&lt;_rule" attribute="Symbol">+				<DetectChar attribute="Symbol" context="%s&lt;_nested" char="&lt;"/>+				<Detect2Chars attribute="String Char" char="\" char1="\"/>+				<Detect2Chars attribute="String Char" char="\" char1=">"/>+				<Detect2Chars attribute="String Char" char="\" char1="&lt;"/>+			</context>++			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the+				delimiter character+			 -->+			<context name="%s_" attribute="Symbol">+				<Detect2Chars attribute="Symbol" char="\" char1="\"/>+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="1" dynamic="true" endRegion="GdlInput" />+				<StringDetect attribute="String Char" String="\%1" dynamic="true"/>+			</context>+++			<!-- regular expression specific contexts -->++			<context name="%r(" attribute="String">+				<DetectChar attribute="GDL input" context="#pop!RegExMode" char=")" endRegion="GdlInput" /> <IncludeRules context="%r(_rule"/>+			</context>+			<context name="%r(_nested" attribute="String">+				<DetectChar attribute="String" context="#pop" char=")"/>+				<IncludeRules context="%r(_rule"/>+			</context>+			<context name="%r(_rule" attribute="String">+				<DetectChar attribute="String" context="%r(_nested" char="("/>+				<IncludeRules context="RegExSpecial"/>+			</context>++			<context name="%r{" attribute="String">+				<DetectChar attribute="GDL input" context="#pop!RegExMode" char="}" endRegion="GdlInput" />+				<IncludeRules context="%r{_rule"/>+			</context>+			<context name="%r{_nested" attribute="String">+				<DetectChar attribute="String" context="#pop" char="}"/>+				<IncludeRules context="%r{_rule"/>+			</context>+			<context name="%r{_rule" attribute="String">+				<DetectChar attribute="String" context="%r{_nested" char="{"/>+				<IncludeRules context="RegExSpecial"/>+			</context>++			<context name="%r[" attribute="String">+				<DetectChar attribute="GDL input" context="#pop!RegExMode" char="]" endRegion="GdlInput" />+				<IncludeRules context="%r[_rule"/>+			</context>+			<context name="%r[_nested" attribute="String">+				<DetectChar attribute="String" context="#pop" char="]"/>+				<IncludeRules context="%r[_rule"/>+			</context>+			<context name="%r[_rule" attribute="String">+				<DetectChar attribute="String" context="%r[_nested" char="["/>+				<IncludeRules context="RegExSpecial"/>+			</context>++			<context name="%r&lt;" attribute="String">+				<DetectChar attribute="GDL input" context="#pop!RegExMode" char=">" endRegion="GdlInput" />+				<IncludeRules context="%r&lt;_rule"/>+			</context>+			<context name="%r&lt;_nested" attribute="String">+				<DetectChar attribute="String" context="#pop" char=">"/>+				<IncludeRules context="%r&lt;_rule"/>+			</context>+			<context name="%r&lt;_rule" attribute="String">+				<DetectChar attribute="String" context="%r&lt;_nested" char="&lt;"/>+				<IncludeRules context="RegExSpecial"/>+			</context>++			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the+				delimiter character+			 -->+			<context name="%r_" attribute="Regular Expression">+				<DetectChar attribute="GDL input" context="#pop!RegExMode" char="1" dynamic="true" endRegion="GdlInput" />+				<StringDetect attribute="String Char" String="\%1" dynamic="true" />+				<IncludeRules context="RegExSpecial"/>+			</context>+++			<!-- shell command specific contexts -->++			<context name="%x(" attribute="Command">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char=")" endRegion="GdlInput" />+				<IncludeRules context="%x(_rule"/>+			</context>+			<context name="%x(_nested" attribute="Command">+				<DetectChar attribute="Command" context="#pop" char=")"/>+				<IncludeRules context="%x(_rule"/>+			</context>+			<context name="%x(_rule" attribute="Command">+				<DetectChar attribute="Command" context="%x(_nested" char="("/>+				<IncludeRules context="DQuoteSpecial"/>+			</context>++			<context name="%x{" attribute="Command">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="}" endRegion="GdlInput" />+				<IncludeRules context="%x{_rule"/>+			</context>+			<context name="%x{_nested" attribute="Command">+				<DetectChar attribute="Command" context="#pop" char="}"/>+				<IncludeRules context="%x{_rule"/>+			</context>+			<context name="%x{_rule" attribute="Command">+				<DetectChar attribute="Command" context="%x{_nested" char="{"/>+				<IncludeRules context="DQuoteSpecial"/>+			</context>++			<context name="%x[" attribute="Command">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="]" endRegion="GdlInput" />+				<IncludeRules context="%x[_rule"/>+			</context>+			<context name="%x[_nested" attribute="Command">+				<DetectChar attribute="Command" context="#pop" char="]"/>+				<IncludeRules context="%x[_rule"/>+			</context>+			<context name="%x[_rule" attribute="Command">+				<DetectChar attribute="Command" context="%x[_nested" char="["/>+				<IncludeRules context="DQuoteSpecial"/>+			</context>++			<context name="%x&lt;" attribute="Command">+				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char=">" endRegion="GdlInput" />+				<IncludeRules context="%x&lt;_rule"/>+			</context>+			<context name="%x&lt;_nested" attribute="Command">+				<DetectChar attribute="Command" context="#pop" char=">"/>+				<IncludeRules context="%x&lt;_rule"/>+			</context>+			<context name="%x&lt;_rule" attribute="Command">+				<DetectChar attribute="Command" context="%x&lt;_nested" char="&lt;"/>+				<IncludeRules context="DQuoteSpecial"/>+			</context>++			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the+				delimiter character+			 -->+			<context name="%x_" attribute="Command">+				<IncludeRules context="%Q_"/>+			</context>++			<!-- END of General delimited input support -->++			<!-- handle data in script -->+			<context name="DATA" attribute="Data"/>+		</contexts>++		<itemDatas>+			<itemData name="Normal Text" defStyleNum="dsNormal"/>++			<itemData name="Keyword" defStyleNum="dsControlFlow"/>+			<itemData name="Attribute Definition" defStyleNum="dsOthers"/>+			<itemData name="Access Control" defStyleNum="dsAttribute" bold="1"/> <!-- #0000FF -->+			<itemData name="Definition" defStyleNum="dsKeyword"/>+			<itemData name="Pseudo variable" defStyleNum="dsDecVal"/>++			<itemData name="Dec" defStyleNum="dsDecVal"/>+			<itemData name="Float" defStyleNum="dsFloat"/>+			<itemData name="Octal" defStyleNum="dsBaseN"/>+			<itemData name="Hex" defStyleNum="dsBaseN"/>+			<itemData name="Bin" defStyleNum="dsBaseN"/>+			<itemData name="Number Suffix" defStyleNum="dsBuiltIn"/>++			<itemData name="Symbol" defStyleNum="dsWarning" bold="0" underline="0"/> <!-- #D40000 -->+			<itemData name="String" defStyleNum="dsString"/>+			<itemData name="String Char" defStyleNum="dsSpecialChar" spellChecking="false"/>+			<itemData name="Raw String" defStyleNum="dsVerbatimString" /> <!-- #DD4A4A -->+			<itemData name="Char Literal" defStyleNum="dsSpecialChar" spellChecking="false"/>+			<itemData name="Char" defStyleNum="dsChar"/>++			<itemData name="Command" defStyleNum="dsInformation"/> <!-- #AA3000 -->+			<itemData name="Message" defStyleNum="dsAttribute" bold="0"/> <!-- #4000A7 -->+			<itemData name="Regular Expression" defStyleNum="dsSpecialString" spellChecking="false"/> <!-- #4A5704 -->+			<itemData name="Substitution"	defStyleNum="dsSpecialChar"/>+			<itemData name="Data" defStyleNum="dsNormal"/>+			<!-- short for 'general delimited input' -->+			<itemData name="GDL input" defStyleNum="dsOthers" />++			<itemData name="Default globals" defStyleNum="dsVariable" bold="1"/> <!-- #C00000 -->+			<itemData name="Global Variable" defStyleNum="dsVariable"/> <!-- #C00000 -->+			<itemData name="Global Constant" defStyleNum="dsConstant" bold="1"/> <!-- #bb1188 -->+			<itemData name="Constant" defStyleNum="dsDataType"/>+			<itemData name="Constant Value" defStyleNum="dsConstant" bold="0"/> <!-- #bb1188 -->+			<itemData name="Kernel methods" defStyleNum="dsFunction" bold="1"/> <!-- #CC0E86 -->+			<itemData name="Module mixin methods" defStyleNum="dsFunction" bold="1"/> <!-- #CC0E86 -->+			<itemData name="Member" defStyleNum="dsAttribute"/>+			<itemData name="Instance Variable" defStyleNum="dsOthers"/>+			<itemData name="Class Variable" defStyleNum="dsOthers"/>++			<itemData name="Comment" defStyleNum="dsComment"/>+			<itemData name="Blockcomment" defStyleNum="dsComment"/>++			<itemData name="Here Document" defStyleNum="dsDocumentation"/>++			<itemData name="Delimiter" defStyleNum="dsKeyword"/> <!-- #FF9FEC -->+			<itemData name="Operator" defStyleNum="dsOperator" bold="1"/> <!-- #FF9FEC -->++			<itemData name="Error" defStyleNum="dsError"/> 		</itemDatas> 	</highlighting> 	<general>
xml/swift.xml view
@@ -10,7 +10,7 @@  <language     name="Swift"-    version="1"+    version="2"     kateversion="5.62"     section="Sources"     extensions="*.swift"@@ -139,8 +139,7 @@                 <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1"/>                 <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"/> -                <Detect2Chars attribute="Comment" context="CommentSingleLine" char="/" char1="/"/>-                <Detect2Chars attribute="Comment" context="CommentMultiline" char="/" char1="*" beginRegion="Comment"/>+                <IncludeRules context="FindComments"/>                  <AnyChar attribute="Symbol" context="#stay" String="()[]&amp;|+,-/*&lt;=&gt;;!%?:~^"/> @@ -172,6 +171,11 @@                 <DetectIdentifier attribute="Normal Text"/>             </context> +            <context attribute="Normal Text" lineEndContext="#stay" name="FindComments">+                <Detect2Chars attribute="Comment" context="CommentSingleLine" char="/" char1="/"/>+                <Detect2Chars attribute="Comment" context="CommentMultiline" char="/" char1="*" beginRegion="Comment"/>+            </context>+             <context attribute="Normal Text" lineEndContext="#stay" name="Number">                 <IncludeRules context="FindFloat"/>                 <RegExpr attribute="Hex" context="#pop" String="\b0[xX]&hex;[lL]?\b"/>@@ -251,16 +255,20 @@                 <DetectIdentifier attribute="Variable" context="#pop" />             </context> -            <context name="TypeDeclaration" lineEndContext="#stay" attribute="Normal Text">+            <context name="TypeDeclaration" lineEndContext="#stay" attribute="Normal Text" fallthroughContext="#pop">                 <keyword attribute="Keyword" context="#stay" String="keywords"/>                  <DetectChar attribute="Symbol" context="TypeParameters" char="&lt;" />                 <DetectChar attribute="Symbol" context="Parameters" char="(" />                 <DetectChar attribute="Symbol" context="SuperTypes" char=":" />                 <DetectChar attribute="Symbol" context="#pop" char="{" lookAhead="true" />++                <DetectIdentifier attribute="Normal Text" context="#stay"/>+                <DetectSpaces attribute="Normal Text" context="#stay"/>+                <IncludeRules context="FindComments"/>             </context> -            <context name="SuperTypes" lineEndContext="#stay" attribute="Normal Text">+            <context name="SuperTypes" lineEndContext="#stay" attribute="Normal Text" fallthroughContext="#pop">                 <keyword attribute="Keyword" context="#pop#pop" String="keywords" lookAhead="true" />                  <DetectChar attribute="Symbol" context="#stay" char="," />@@ -269,18 +277,21 @@                 <DetectChar attribute="Symbol" context="TypeParameters" char="&lt;" />                  <DetectIdentifier attribute="Data Type" context="#stay"/>+                <DetectSpaces attribute="Normal Text" context="#stay"/>+                <IncludeRules context="FindComments"/>             </context> -            <context name="FunctionDeclaration" lineEndContext="#stay" attribute="Normal Text">+            <context name="FunctionDeclaration" lineEndContext="#stay" attribute="Normal Text" fallthroughContext="#pop">                 <keyword attribute="Keyword" context="#stay" String="keywords"/>                 <DetectChar attribute="Symbol" context="#stay" char="." />                 <DetectChar attribute="Symbol" context="Parameters" char="(" />                 <DetectChar attribute="Symbol" context="TypeParameters" char="&lt;" />                 <DetectChar attribute="Symbol" context="TypeName" char=":" />--                <AnyChar attribute="Symbol" context="#pop" String="{=" lookAhead="true" />+                <AnyChar attribute="Normal Text" String="->[]?" />                  <DetectIdentifier attribute="Function" context="#stay"/>+                <DetectSpaces attribute="Normal Text" context="#stay"/>+                <IncludeRules context="FindComments"/>             </context>              <context name="TypeParameters" lineEndContext="#stay" attribute="Normal Text">@@ -293,6 +304,8 @@                 <DetectChar attribute="Symbol" context="TypeParameters" char="&lt;" />                  <DetectIdentifier attribute="Data Type" context="DataTypeSuffix"/>+                <DetectSpaces attribute="Normal Text" context="#stay"/>+                <IncludeRules context="FindComments"/>             </context>             <context name="DataTypeSuffix" lineEndContext="#pop" attribute="Normal Text" fallthroughContext="#pop">                 <DetectChar attribute="Symbol" context="#pop" char="?"/>@@ -305,6 +318,8 @@                 <DetectChar attribute="Symbol" context="Expression" char="=" />                 <DetectIdentifier attribute="Variable" context="#stay"/>                 <DetectChar attribute="Symbol" context="#stay" char=","/>+                <DetectSpaces attribute="Normal Text" context="#stay"/>+                <IncludeRules context="FindComments"/>             </context>              <context name="TypeName" lineEndContext="#stay" attribute="Normal Text">@@ -339,8 +354,7 @@                 <DetectChar context="String" char="&quot;" lookAhead="1"/>                 <DetectChar context="Char" char="'" lookAhead="1"/> -                <Detect2Chars attribute="Comment" context="CommentSingleLine" char="/" char1="/"/>-                <Detect2Chars attribute="Comment" context="CommentMultiline" char="/" char1="*" beginRegion="Comment"/>+                <IncludeRules context="FindComments"/>                  <DetectIdentifier attribute="Normal Text"/>             </context>@@ -357,12 +371,14 @@             <context attribute="Comment" lineEndContext="#pop" name="CommentSingleLine">                 <DetectSpaces />                 <IncludeRules context="##Comments"/>+                <DetectIdentifier />             </context>             <context attribute="Comment" lineEndContext="#stay" name="CommentMultiline">                 <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>                 <Detect2Chars attribute="Comment" context="CommentMultiline" char="/" char1="*" beginRegion="Comment"/>                 <DetectSpaces />                 <IncludeRules context="##Comments"/>+                <DetectIdentifier />             </context>          </contexts>
xml/xml.xml view
@@ -6,7 +6,7 @@ 	<!ENTITY name    "(?![0-9])[\w_:][\w.:_-]*"> 	<!ENTITY entref  "&amp;(?:#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);"> ]>-<language name="XML" version="20" kateversion="5.0" section="Markup" extensions="*.page;*.docbook;*.xml;*ui.rc;*.daml;*.rdf;*.rss;*.xspf;*.xsd;*.svg;*.ui;*.kcfg;*.qrc;*.wsdl;*.scxml;*.xbel;*.dae;*.sch;*.brd" mimetype="text/xml;text/book;text/daml;text/rdf;application/rss+xml;application/xspf+xml;image/svg+xml;application/x-designer;application/x-xbel;application/xml;application/scxml+xml;application/vnd.oasis.opendocument.text-flat-xml;application/vnd.oasis.opendocument.graphics-flat-xml;application/vnd.oasis.opendocument.presentation-flat-xml;application/vnd.oasis.opendocument.spreadsheet-flat-xml;application/gpx+xml" casesensitive="1" indenter="xml" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">+<language name="XML" version="22" kateversion="5.0" section="Markup" extensions="*.page;*.docbook;*.xml;*ui.rc;*.daml;*.rdf;*.rss;*.xspf;*.xsd;*.svg;*.ui;*.kcfg;*.qrc;*.wsdl;*.scxml;*.xbel;*.dae;*.sch;*.brd;*.fb2" mimetype="text/xml;text/book;text/daml;text/rdf;application/rss+xml;application/xspf+xml;image/svg+xml;application/x-designer;application/x-xbel;application/xml;application/scxml+xml;application/vnd.oasis.opendocument.text-flat-xml;application/vnd.oasis.opendocument.graphics-flat-xml;application/vnd.oasis.opendocument.presentation-flat-xml;application/vnd.oasis.opendocument.spreadsheet-flat-xml;application/gpx+xml;application/x-fictionbook+xml" casesensitive="1" indenter="xml" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">  <highlighting> <contexts>@@ -99,6 +99,7 @@   </context>   <context name="Doctype Markupdecl VariableName" attribute="Other Text" lineEndContext="#pop!Doctype Markupdecl" fallthrough="true" fallthroughContext="#pop!Doctype Markupdecl">     <DetectSpaces />+    <DetectChar attribute="Doctype Symbols" char="%"/>     <RegExpr attribute="Doctype Name" context="#pop!Doctype Markupdecl" String="&name;" />   </context>   <context name="Doctype Markupdecl" attribute="Other Text" lineEndContext="#stay">
xml/yaml.xml view
@@ -53,8 +53,8 @@ <!-- Modifications (YAML 1.2), values & support for literal/folded style:        Nibaldo González S. <nibgonz@gmail.com>        These modifications are under the MIT license. //-->-<language name="YAML" alternativeNames="YML" version="12" kateversion="5.0" section="Markup"-          extensions="*.yaml;*.yml" mimetype="text/yaml" priority="9"+<language name="YAML" alternativeNames="YML" version="13" kateversion="5.0" section="Markup"+          extensions="*.yaml;*.yml;.clang-format;.clang-tidy" mimetype="text/yaml" priority="9"           author="Dr Orlovsky MA (dr.orlovsky@gmail.com), Nibaldo González (nibgonz@gmail.com)" license="LGPL">   <highlighting>     <contexts>
xml/zig.xml view
@@ -7,7 +7,7 @@     <!ENTITY exp_float "(?:[eE][+-]?&dec_int;)">     <!ENTITY exp_hexfloat "(?:[pP][-+]?&dec_int;)"> ]>-<language name="Zig" section="Sources" version="2" kateversion="5.62" indenter="cstyle" extensions="*.zig" mimetype="text/x-zig" priority="1" author="Waqar Ahmed (waqar.17a@gmail.com)" license="MIT">+<language name="Zig" section="Sources" version="3" kateversion="5.62" indenter="cstyle" extensions="*.zig" mimetype="text/x-zig" priority="1" author="Waqar Ahmed (waqar.17a@gmail.com)" license="MIT">     <highlighting>         <list name="keywords">             <item>addrspace</item>@@ -268,6 +268,7 @@                 <DetectChar attribute="Decimal" context="#pop!SuffixNumber" char="0"/>             </context>             <context name="SuffixNumber" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">+                <StringDetect attribute="Symbol" String=".." context="#pop"/> <!-- in `[0..a]` -->                 <AnyChar attribute="Error" String=".0123456789" context="#pop"/>                 <DetectIdentifier attribute="Error" context="#pop"/>             </context>
xml/zsh.xml view
@@ -69,16 +69,22 @@          <!ENTITY arithmetic_as_subshell "\(((?:[^`'&quot;()$]++|\$\{[^`'&quot;(){}$]+\}|\$(?=[^{`'&quot;()])|&bq_string;|\((?1)(?:[)]|(?=['&quot;])))++)(?:[)](?=$|[^)])|[&quot;'])"> -        <!ENTITY unary_operators  "-[abcdefghknoprstuvwxzLOGNS]&eos;">-        <!ENTITY binary_operators "(?:-(?:e[fq]|[nolg]t|[nlg]e)|==?|!=)&eos;">+        <!ENTITY unary_operators  "-[abcdefghknoprstuvwxzLOGNS](?=\\?$|[ &tab;])">+        <!ENTITY binary_operators "(?:-(?:e[fq]|[nolg]t|[nlg]e)|==?|!=)(?=\\?$|[ &tab;])">          <!ENTITY dblbracket_close "\]\](?=($|[ &tab;;|&amp;)]))">          <!ENTITY int "(?:[0-9]++[_0-9]*+)">         <!ENTITY exp "(?:[eE][-+]?&int;)"> ]>-<language name="Zsh" version="32" kateversion="5.79" section="Scripts" extensions="*.sh;*.zsh;.zshrc;.zprofile;.zlogin;.zlogout;.profile" mimetype="application/x-shellscript" casesensitive="1" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT"> +<!--+https://zsh.sourceforge.io/releases.html+current: 5.9+-->++<language name="Zsh" version="34" kateversion="5.79" section="Scripts" extensions="*.sh;*.zsh;.zshrc;.zprofile;.zlogin;.zlogout;.profile" mimetype="application/x-shellscript" casesensitive="1" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">+   <highlighting>     <list name="keywords">       <item>continue</item>@@ -1030,7 +1036,7 @@         <DetectSpaces attribute="String SingleQ"/>         <DetectIdentifier attribute="String SingleQ"/>         <DetectChar attribute="String SingleQ" context="#pop" char="'"/>-        <RegExpr attribute="String Escape" context="#stay" String="\\(?:[abefnrtv\\']|[0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)"/>+        <RegExpr attribute="String Escape" context="#stay" String="\\(?:[abeEfnrtv\\']|[0-7]{1,3}|x[A-Fa-f0-9]{1,2}|u[A-Fa-f0-9]{1,4}|U[A-Fa-f0-9]{1,8}|c.)?"/>       </context>        <context attribute="Normal Text" lineEndContext="#stay" name="FindWord">@@ -1546,13 +1552,19 @@         <DetectChar attribute="Normal Text" context="#pop!ExprBracketValueRecBrace" char="{"/>       </context> -      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracketParam2" fallthroughContext="ExprBracketValue">+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracketParam2" fallthroughContext="#pop!ExprBracketParam2_Value">+        <LineContinue attribute="Escape" context="SkipSpaces"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracketParam2_Value" fallthroughContext="ExprBracketValue">         <DetectSpaces attribute="Normal Text" context="#pop!ExprBracketParam3"/>         <AnyChar context="TestMaybeBinary" String="-=!" lookAhead="1"/>         <IncludeRules context="FindExprBracketEnd"/>       </context> -      <context attribute="Normal Text" lineEndContext="ExprBracketFinal" name="ExprBracketParam3" fallthroughContext="ExprBracketValue">+      <context attribute="Normal Text" lineEndContext="ExprBracketFinal" name="ExprBracketParam3" fallthroughContext="#pop!ExprBracketParam3_Value">+        <LineContinue attribute="Escape" context="SkipSpaces"/>+      </context>+      <context attribute="Normal Text" lineEndContext="ExprBracketFinal" name="ExprBracketParam3_Value" fallthroughContext="ExprBracketValue">         <DetectSpaces attribute="Normal Text" context="#pop!ExprBracketFinal"/>         <IncludeRules context="FindExprBracketEnd"/>       </context>@@ -1576,7 +1588,11 @@         <RegExpr attribute="Expression" context="#pop" String="&binary_operators;"/>       </context> +      <context attribute="Normal Text" lineEndContext="#pop" name="SkipSpaces" fallthroughContext="#pop">+        <DetectSpaces context="#pop"/>+      </context> +       <!-- ExprDblBracket consumes an expression till ]] -->       <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracket" fallthroughContext="#pop!ExprDblBracketNot">         <DetectSpaces attribute="Normal Text" context="#stay"/>@@ -1672,6 +1688,7 @@       <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam2" fallthroughContext="#pop!ExprDblBracketParam2_2">         <DetectSpaces attribute="Normal Text" context="#stay"/>         <DetectChar attribute="Comment" context="Comment" char="#"/>+        <LineContinue attribute="Escape"/>       </context>       <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam2_2" fallthroughContext="ExprDblBracketValuePattern">         <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketParam3"/>@@ -1689,8 +1706,7 @@       </context>        <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam3" fallthroughContext="#pop!ExprDblBracketParam3_2">-        <DetectSpaces attribute="Normal Text" context="#stay"/>-        <DetectChar attribute="Comment" context="Comment" char="#"/>+        <IncludeRules context="ExprDblBracketParam2"/>       </context>       <context attribute="Normal Text" lineEndContext="#pop!ExprDblBracketFinal" name="ExprDblBracketParam3_2" fallthroughContext="ExprDblBracketValuePattern">         <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketFinal"/>