There are different categories of fouls in the NBA (depending on how you count). Given the number of possibilities, most fans/announcers tend to treat fouls that are not "routine" as technical fouls, though some of the "special" fouls are actually personal fouls (they might still result in undefended free throws).
- Delay of game - any action that would keep an opposing team from starting their possession
This one is often bizarre as a player might inadvertently touch the ball after they score, but not stop and pass it to the referee. A player may completely ignore the ball and run back on defense, but if they touch it, they have to pass it to the referee
- Excessive timeouts - calling a timeout when the team has no more remaining
- Substitution - Not checking in with the officials before entering the court
- Loosely enforced
- Hanging on the basket - Player cannot hang on the basket, net, etc except to avoid injury
- Barely enforced
- Coaches box violations - Coach must stay within the markings and not run down the court
- Defensive 3-seconds - A defensive player in the lane must have been within arms reach of an offensive player in the last three seconds
- 5 players violation - You must have 5 players if the ball is alive
There are actually exceptions to the fouling out rule so that a team always has at least 5 eligible players. Cavs v Lakers this year ran into these exceptions.
- Conduct - unsportsmanlike conduct
The list here is a mile long, and almost completely at the referee's discretion. An interesting case is that personal fouls committed while play is stopped can be assessed as techs
Punching someone may or may not be a technical foul, see the personal foul below. Also there are no free throws at all if fighting is the foul assessed by the referee. Everyone involved gets ejected