How would be the following different? Disregard the domains.

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]


RewriteCond %{HTTP_HOST} !^www\.yourdomain\.com
RewriteRule (.*) http://www.yourdomain.com/$1 [L,R=301]

The main difference is "^"?

Things I essentially wish to accomplish is have my website as http://yourdomain.com rather than possess the www appear. To begin with its shorter and it is great for Search engine optimization as my website will not be judged as two sites. One with www and something without.

Thanks all

No, they won't be the same.

The very first states, redirect towards the host example.com when the host is www.example.com.
The 2nd states, redirect to www.example.com when the host isn't www.example.com.

And even when you'd rewrite the 2nd towards the following (getting both rules redirecting to example.com:

RewriteCond %{HTTP_HOST} !^example\.com$
RewriteRule (.*) http://example.com/$1 [L,R=301]

To ensure that it might redirect to example.com when the host isn't example.com. The end result may be the same when the host are only able to be www.example.com and example.com. But when it may convey more values than that (e.g. foobar.example.com), the the first rule wouldn't redirect while my would redirect.