Just tried and solved the question on my own... answer here and hope it's useful for someone else.
$pattern = "/<td ?.*>(.*)<\/td>/";
preg_match_all($pattern, $str, $matches);
foreach( $matches[0] as $key=>$val){
if(preg_match('/GB/i',$val)){
echo $val;
}
}
//output: 16GB/32GB/64GB/128GB
but still wondering is there any better or easier way?
EDITED:
ok i got it... i really hate regular expression...
$pattern = '/[<td ?.*>](.*?)<\/td>/s';
this can solve the case if the string between td tags containing other tags... just a simple []...