diff --git a/Tools/TimePlot.hs b/Tools/TimePlot.hs
--- a/Tools/TimePlot.hs
+++ b/Tools/TimePlot.hs
@@ -12,8 +12,8 @@
 
 import Data.Char
 
-import Text.Regex.PCRE
-import Text.Regex.PCRE.ByteString
+import Text.Regex.TDFA
+import Text.Regex.TDFA.ByteString
 
 import System
 import System.Exit
@@ -140,11 +140,12 @@
         outRes      = parseRes $ single "output resolution" "-or" "640x480"
           where
             parseRes s = case break (=='x') s of (h,_:v) -> (read h,read v)
-        chartKindF  = kindByRegex [((=~regex), parseKind (words kind)) | [regex,kind] <- getArg "-k" 2 args]
+        chartKindF  = kindByRegex [((matches regex), parseKind (words kind)) | [regex,kind] <- getArg "-k" 2 args]
           where
             kindByRegex rks s = case [k | (p,k) <- rks, p s] of
               k:_ -> k
               _   -> defaultKind
+            matches regex = matchTest (makeRegexOpts defaultCompOpt (ExecOption {captureGroups = False}) regex)
 
         fromTime    = fst `fmap` (parseTime . B.pack $ single "minimum time (inclusive)" "-fromTime" "")
         toTime      = fst `fmap` (parseTime . B.pack $ single "maximum time (exclusive)" "-toTime"   "")
@@ -465,7 +466,8 @@
   "              for example, [%Y-%m-%d %H:%M:%S] parses dates like [2009-10-20 16:52:43]. ",
   "              We also support %OS for fractional seconds (i.e. %OS will parse 12.4039 or 12,4039).",
   "              Default: 'date %Y-%m-%d %H:%M:%OS'",
-  "  -k P K    - set diagram kind for tracks matching pattern P to K ",
+  "  -k P K    - set diagram kind for tracks matching regex P (in the format of regex-tdfa, which",
+  "              is at least POSIX-compliant and supports some GNU extensions) to K ",
   "              (-k clauses are matched till first success)",
   "  -dk       - set default diagram kind",
   "  -fromTime - filter records whose time is >= this time (formatted according to -tf)",
@@ -481,9 +483,12 @@
   "Diagram kinds:",
   "  'event' is for event diagrams: during events are drawn like --[===]--- , pulse events like --|--",
   "  'duration XXXX' - plot any kind of diagram over the *durations* of events on a track (delimited by > ... <)",
-  "    for example 'duration quantile 300 0.25,0.5,0.75' will plot these quantiles of durations of the events.",
-  "    This is useful where your log looks like 'Started processing' ... 'Finished processing': you can plot",
-  "    processing durations without computing them yourself.",
+  "     for example 'duration quantile 300 0.25,0.5,0.75' will plot these quantiles of durations of the events.",
+  "     This is useful where your log looks like 'Started processing' ... 'Finished processing': you can plot",
+  "     processing durations without computing them yourself.",
+  "  'duration[C] XXXX' - same as 'duration', but of a track's name we only take the part before character C.",
+  "     For example, if you have processes named 'MACHINE-PID' (i.e. UNIT027-8532) say 'begin something' / ",
+  "     'end something' and you're interested in the properties of per-machine durations, use duration[-].",
   "  'hist N' is for histograms: a histogram is drawn with granularity of N time units, where",
   "     the bin corresponding to [t..t+N) has value 'what was the maximal number of active events",
   "     in that interval'.",
diff --git a/timeplot.cabal b/timeplot.cabal
--- a/timeplot.cabal
+++ b/timeplot.cabal
@@ -1,5 +1,5 @@
 Name: timeplot
-Version: 0.1.9
+Version: 0.2.0
 License: BSD3
 License-file: LICENSE
 Copyright: Eugene Kirpichov, 2009
@@ -29,6 +29,6 @@
 
   Build-Depends: Chart >= 0.14, cairo, bytestring, bytestring-lexing, strptime >= 0.1.5, time, 
                  containers, colour, data-accessor == 0.2.*, data-accessor-template >= 0.2.1.1 && < 0.3, 
-                 haskell98, regex-pcre
+                 haskell98, regex-tdfa
   Main-Is: Tools/TimePlot.hs
   Other-Modules: Graphics.Rendering.Chart.Event
