Global matching
----------------------------------------------------------------
Regexp='ba[rz]', Opts='g'
  last string='foobarbaz'
  number of matches = 1
  0 - bar
Regexp='ba[rz]', Opts='g'
  last string='foobarbaz'
  number of matches = 1
  0 - baz
 
Global matching with back-refs
----------------------------------------------------------------
Regexp='(ba[rz])', Opts='g'
  last string='foobarbaz'
  number of matches = 2
  0 - bar
  1 - bar
Regexp='(ba[rz])', Opts='g'
  last string='foobarbaz'
  number of matches = 2
  0 - baz
  1 - baz
 
Matching with nested back-refs
----------------------------------------------------------------
Regexp='([\w\.-]+)@((\d+)\.(\d+)\.(\d+)\.(\d+))', Opts=''
  last string='matevz.tadel@137.138.170.210'
  number of matches = 7
  0 - matevz.tadel@137.138.170.210
  1 - matevz.tadel
  2 - 137.138.170.210
  3 - 137
  4 - 138
  5 - 170
  6 - 210
 
Split
----------------------------------------------------------------
Regexp=':', Opts=''
  last string='root:x:0:0:root:/root:/bin/bash'
  number of matches = 7
  0 - root
  1 - x
  2 - 0
  3 - 0
  4 - root
  5 - /root
  6 - /bin/bash
 
Split with maxfields=5
----------------------------------------------------------------
Regexp=':', Opts=''
  last string='root:x:0:0:root:/root:/bin/bash'
  number of matches = 5
  0 - root
  1 - x
  2 - 0
  3 - 0
  4 - root:/root:/bin/bash
 
Split with empty elements in the middle and at the end
maxfields=0, so trailing empty elements are dropped
----------------------------------------------------------------
Regexp=':', Opts=''
  last string='root::0:0:root:/root::'
  number of matches = 6
  0 - root
  1 - 
  2 - 0
  3 - 0
  4 - root
  5 - /root
 
Split with empty elements at the beginning and end
maxfields=-1, so trailing empty elements are kept
----------------------------------------------------------------
Regexp=':', Opts=''
  last string=':x:0:0:root::'
  number of matches = 7
  0 - 
  1 - x
  2 - 0
  3 - 0
  4 - root
  5 - 
  6 - 
 
Split with no pattern in string
----------------------------------------------------------------
Regexp=':', Opts=''
  last string='A dummy line of text.'
  number of matches = 1
  0 - A dummy line of text.
 
Split with regexp potentially matching a null string 
----------------------------------------------------------------
Regexp=' *', Opts=''
  last string='hi there'
  number of matches = 7
  0 - h
  1 - i
  2 - t
  3 - h
  4 - e
  5 - r
  6 - e
 
Split on patteren with back-refs
----------------------------------------------------------------
Regexp='([,-])', Opts=''
  last string='1-10,20'
  number of matches = 5
  0 - 1
  1 - -
  2 - 10
  3 - ,
  4 - 20
 
Substitute
----------------------------------------------------------------
Regexp='(\d+)\.(\d+)\.(\d+)\.(\d+)', Opts=''
Substitute '137.138.170.210','$4.$3.$2.$1' => '210.170.138.137'
 
Global substitute
----------------------------------------------------------------
Regexp='(\w+)\.(\w+)@[\w\.-]+', Opts='g'
Substitute 'rene.brun@cern.ch, philippe.canal@fnal.gov, fons.rademakers@cern.ch','\u$1 \U$2\E' => 'Rene BRUN, Philippe CANAL, Fons RADEMAKERS'