^ asserts position at start of a line \/ matches the character / with index 47_{10} (2F_{16} or 57_{8}) literally (case sensitive)
\* matches the character * with index 42_{10} (2A_{16} or 52_{8}) literally (case sensitive)

matches the character  with index 45_{10} (2D_{16} or 55_{8}) literally (case sensitive)\n matches a linefeed (newline) character (ASCII 10)
Named Capture Group title (?<title> {4}.+?: .+\n)?
? matches the previous token between zero and one times, as many times as possible, giving back as needed (greedy)
matches the character with index 32_{10} (20_{16} or 40_{8}) literally (case sensitive).
matches any character (except for line terminators)+? matches the previous token between one and unlimited times, as few times as possible, expanding as needed (lazy)
:
matches the characters : literally (case sensitive).
matches any character (except for line terminators)+ matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)
\n matches a linefeed (newline) character (ASCII 10)
Match a single character present in the list below [\n \t]
+ matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)
\n matches a linefeed (newline) character (ASCII 10)
matches the character with index 32_{10} (20_{16} or 40_{8}) literally (case sensitive)
\t matches a tab character (ASCII 9)
Named Capture Group desc (?<desc>^ {4}(?:.+\n)+?\n)?
? matches the previous token between zero and one times, as many times as possible, giving back as needed (greedy)
^ asserts position at start of a line
matches the character with index 32_{10} (20_{16} or 40_{8}) literally (case sensitive)Noncapturing group (?:.+\n)+?
+? matches the previous token between one and unlimited times, as few times as possible, expanding as needed (lazy)
.
matches any character (except for line terminators)+ matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)
\n matches a linefeed (newline) character (ASCII 10)
\n matches a linefeed (newline) character (ASCII 10)
Match a single character present in the list below [\n \t]
+ matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)
\n matches a linefeed (newline) character (ASCII 10)
matches the character with index 32_{10} (20_{16} or 40_{8}) literally (case sensitive)
\t matches a tab character (ASCII 9)
Named Capture Group remarks (?<remarks>^ {4}(?:.+\n)+?\n)?
? matches the previous token between zero and one times, as many times as possible, giving back as needed (greedy)
^ asserts position at start of a line
matches the character with index 32_{10} (20_{16} or 40_{8}) literally (case sensitive)Noncapturing group (?:.+\n)+?
+? matches the previous token between one and unlimited times, as few times as possible, expanding as needed (lazy)
.
matches any character (except for line terminators)+ matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)
\n matches a linefeed (newline) character (ASCII 10)
\n matches a linefeed (newline) character (ASCII 10)
Match a single character present in the list below [\n \t]
+ matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)
\n matches a linefeed (newline) character (ASCII 10)
matches the character with index 32_{10} (20_{16} or 40_{8}) literally (case sensitive)
\t matches a tab character (ASCII 9)
Named Capture Group cols (?<cols>^ {4}Columns:(?:.+\n)+?\n)?
? matches the previous token between zero and one times, as many times as possible, giving back as needed (greedy)
^ asserts position at start of a line
matches the character with index 32_{10} (20_{16} or 40_{8}) literally (case sensitive)Columns:
matches the characters Columns: literally (case sensitive)Noncapturing group (?:.+\n)+?
+? matches the previous token between one and unlimited times, as few times as possible, expanding as needed (lazy)
.
matches any character (except for line terminators)+ matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)
\n matches a linefeed (newline) character (ASCII 10)
\n matches a linefeed (newline) character (ASCII 10)
Match a single character present in the list below [\n \t]
+ matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)
\n matches a linefeed (newline) character (ASCII 10)
matches the character with index 32_{10} (20_{16} or 40_{8}) literally (case sensitive)
\t matches a tab character (ASCII 9)
Named Capture Group cons (?<cons>^ {4}Constraints:(?:.+\n)+?\n)?
? matches the previous token between zero and one times, as many times as possible, giving back as needed (greedy)
^ asserts position at start of a line
matches the character with index 32_{10} (20_{16} or 40_{8}) literally (case sensitive)Constraints:
matches the characters Constraints: literally (case sensitive)Noncapturing group (?:.+\n)+?
\n matches a linefeed (newline) character (ASCII 10)
Match a single character present in the list below [\n \t]
+ matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)
\n matches a linefeed (newline) character (ASCII 10)
matches the character with index 32_{10} (20_{16} or 40_{8}) literally (case sensitive)
\t matches a tab character (ASCII 9)
Named Capture Group tags (?<tags>^ {4}Tags:(?:.+\n)+?)?
^ asserts position at start of a line \* matches the character * with index 42_{10} (2A_{16} or 52_{8}) literally (case sensitive)
\/ matches the character / with index 47_{10} (2F_{16} or 57_{8}) literally (case sensitive)
matches the character with index 32_{10} (20_{16} or 40_{8}) literally (case sensitive)\n matches a linefeed (newline) character (ASCII 10)
m modifier: multi line. Causes ^ and $ to match the begin/end of each line (not only begin/end of string)