All things being equal, there are two layers:
First, go from most dramatic to least dramatic. No point in redirecting someone if you're going to slam the door in their face next time they show up, two nanoseconds later. So you go
[L] (i.e. rewrites alone, no redirect)
Second, within each of those groups, go from most specific to most general. For example, individual page redirects go before index.html redirects which in turn go before the final with/without www. redirect.
There may be exceptions. For example, if an entire directory is 410 Gone, except for one page that you're redirecting, then obviously that redirect has to go before all the [G] rules.
What about RewriteCond? Where does it fall in the hierarchy of a properly ordered .htaccess file?
You cannot begin to imagine how worried I am by this question. It implies that you haven't got a solid grip on the relationship between RewriteConds and RewriteRules. This can easily make mincemeat of your whole redirect structure. The Horse's Mouth
There are also several thousand threads in this forum talking about how RewriteRules and RewriteConds should be arranged. But you may need some assurance that we're not just making it up.