If you're from the apache world, nginx configuration if often counter-intuitive.
Does the following help?
# To find location matching a given request, nginx first checks locations defined
# using the prefix strings (prefix locations). Among them, the location with the
# longest matching prefix is selected and remembered.
# Then regular expressions are checked, in the order of their appearance in
# the configuration file.
# The first matching expression stops the search and nginx will use this location.
# If the longest matching prefix location has the '^~' modifier then regular
# expressions are not checked.
# Also, using the '=' modifier it is possible to define an exact match of URI
# and location. If an exact match is found, the search terminates.