, if , - . 'contains'/'containsin', .. , :help syn-region . . , - :
syn keyword MyLanguageElse else containedin=MyLanguageIfBlock
syn region MyLanguageIfBlock matchgroup=MyLanguageIf start="^\s*if\>" end="^\s*end\>" containedin=MyLanguageFuncBlock contains=MyLanguageIfBlock
syn region MyLanguageFuncBlock matchgroup=MyLanguageFunc start="^\s*\k*\ze(" end="^\s*end\>"
hi link MyLanguageIf Keyword
hi link MyLanguageElse Keyword
hi link MyLanguageFunc Comment
!