Supposing i find the good keyword but all the domain extensions of my keyword are taken. I have 2 options: 1- Append prefixes or suffixes to the keyword for my domain. 2- Add the hyphen ('-') to my keyword. If i want to know will my site have opportunity to get rank on Google, which one must i choose?
Whatever you prefer. Sometimes a hyphen can help a domain name make sense, however I would not have more than one in it as it can look spammy. Having a prefix/suffix can help to produce a more descriptive name. Let's take an example: you want to create a website with mp3 player reviews, but mp3players.com is taken, so you might choose mp3playerreviews.com or mp3playersguide.com instead. Don't obsess over a domain name too much though as it's not that important to have an "exact match" but instead to build up strong backlinks, good on-site content and trust with the search engines (Google/Bing).
I would choose a hyphen first and if that wasn't available, then choose a suffix ... not a prefix in any of the top level extensions.
You're reducing these results appearing due to their domain name, which is ridiculous. It's one small part of a big "puzzle"/"picture". When you search your keyword, is it highlighted by Google in the search results? Yes, job done right, regardless of where it is (domain, url, content).
Domain name should be unique and in less than 11 characters. Make it short and sweet which is easy to remember. Keyword rich domain don't have any importance now.