                                              c2)))
         {:text-color agg}))))
 
+(def regex2 (re-pattern (str "([^" "\33" "]*)(("  "\33" ".*?m)*)")))
+
 (defn str->ansi-pairs
   [s]
-  (let [r (re-pattern (str "([^" "\33" "]*)(("  "\33" ".*?m)+)"))]
+  (let [r regex2]
     (loop [head []
            tail s]
       (let [[match txt ansi _] (re-find r tail)

             (when b'
               {(->kw b') b'})))))

(defn ansi->prop-map
  [ansi]
  (let [rm (re-matcher (re-pattern (str "\33" "\\[(\\d+)?(;(\\d+))?m"))
                       ansi)]
    (loop [[match c1 _ c2] (re-find rm)
           agg {}]

       flatten
       (remove nil?)
       group-meta-strings
       (mapv #(if (string? %)
                (str->ansi-pairs %)
               %))
       flatten
       split-text-tag-coll))
