ok when you match shomething...
eveyting that gets matched goes into $match[0]
so
preg_match( '/(b) (c) d e (f)/', 'a b c d e f g', $match)
should produce
$match[0] = 'b c d e f g'
$match[1] = 'b'
$match[2] = 'c'
$match[3] = 'f'
notice $matches[1] corrosponds to the first set of (), etc.
preg_match_all assumes each one of the elemtns in $match is an array
preg_match_all( '/(b) (.)/', 'a b c d e f g', $match)
$match[0] = 'b c d e f g'
$match[1] = array( 'b' )
$match[2] = array( 'c', ' ', 'd', ' ', 'e', ' ', 'f', ' ', 'g' )
does that make more sense, or does that confuse you more