fork download
  1. <?php
  2.  
  3. $re = '~[#.]?[^{}]*{[^{}]*[{}][^{}]*}(*SKIP)(*F)|[#.]?[^{}]*{([^{}]+)}~';
  4. $str = "{amdnia91(+wowa}\n{amdn{ia91(+wowa}\n.something{property:value;prop2:value}#something2{someprop:val;prop:val}\n.something{property:value{;prop2:value}#something2{someprop:val;prop:val}\n.something{property:v}alue;prop2:value}#something2{someprop:val;prop:val}";
  5. preg_match_all($re, $str, $matches);
  6. print_r($matches);
Success #stdin #stdout 0.02s 52472KB
stdin
Standard input is empty
stdout
Array
(
    [0] => Array
        (
            [0] => {amdnia91(+wowa}
            [1] => 
.something{property:value;prop2:value}
            [2] => #something2{someprop:val;prop:val}
            [3] => #something2{someprop:val;prop:val}
            [4] => #something2{someprop:val;prop:val}
        )

    [1] => Array
        (
            [0] => amdnia91(+wowa
            [1] => property:value;prop2:value
            [2] => someprop:val;prop:val
            [3] => someprop:val;prop:val
            [4] => someprop:val;prop:val
        )

)