First caramelize onions and garlic in olive oil. When done, add to a bowl.
Make the filling by combining the onions and garlic, prosciutto, egg, breadcrumbs, fresh herbs and Parmesan. Mix together and set aside.
Remove flank steak from package and lay between 2 pieces of plastic wrap. Use a meat mallet (or anything hard) and pound the flank so the width is even. Season with salt and pepper.
Remove the plastic wrap and place the filling evenly on the steak.
Then begin to roll the steak, making sure the filling is tight inside. Once rolled, use butcher string to tie the steak in several places so that it is as even in shape as it can be. Season with salt and pepper.
In a large dutch oven or pot, drizzle with olive oil and sear the braciole on all sides. Once seared, remove to a plate. To the same pot, add chopped onions, garlic, dried oregano, red pepper flakes and sauté until onions are translucent. Add tomato paste and stir to combine. Then add 1 cup of wine and deglaze while using a wooden spoon to scrape the bottom. The wine should reduce by half and thicken.
Add crushed tomatoes to the pot and season with salt and pepper. Add the braciole (with any juices that have accumulated) into the tomato sauce and cover the pot, leaving a small opening.
Bring up to a boil and then reduce to a simmer and cook everything until meat is tender and cooked through, about an hour and a half.
To serve, remove braciole from sauce and if allow to rest for 10 minutes. Then cut strings off braciole and slice into 1/2 inch thick slices. Serve with marinara sauce and garnish with fresh herbs.