Как получить кратчайшее, а не максимально возможное совпадение регулярных выражений с preg_match ()

У меня есть строка, подобная этой:

{{something1}} something2 {{something3}} something4 

Как я могу сопоставить только «something1» с помощью функции preg_match() ?

Я пытался:

 preg_match("/\{\{(.*)\}\}/si",$content,$matches); 

но это соответствовало слишком много, возвращаясь

 something1}} something2 {{something3 

Я попробовал добавить \b к шаблону, но не получил то, что хочу этого.

Не могли бы вы мне помочь?

Использовать не жадный модификатор ? :

 preg_match("/\{\{(.*?)\}\}/si",$content,$matches); here --^ 

Попробуй это:

 preg_match('|{{([^}]+)}}|si', $content, $matches); echo $matches[1]; 

полный ответ – если наш $ var:

 STARTT FIRST KKK SECOND KKK 

1) В случае использования:

 $var = preg_replace('/STARTT(.*)KKK/', 'REPLACED-STRING', $var); 

он изменит все, начиная с STARTT и заканчивая KKK, и Result будет:

 REPLACED-STRING 

2) В случае использования:

 $var = preg_replace('/STARTT(.*?)KKK/', 'REPLACED-STRING', $var); 

Результат будет:

 REPLACED-STRING SECOND KKK